欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

OCCT中的圆锥面(Geom_ConicalSurface)

程序员文章站 2022-04-15 18:42:15
...

    圆锥面是由圆锥顶点处的半角,局部坐标系中的位置,以及半径定义。

  • 坐标系的“主轴”是圆锥的旋转轴。
  • 坐标系的“原点”,“x方向”,“y方向”定义的平面是圆锥的参考平面。圆锥与参考平面相交形成圆,该圆的的半径等于参考半径。
  • 如果圆锥的半角为正,则锥体的顶点位于坐标系的“主轴”的负侧,如果半角为负,则锥的顶点位于正侧。该坐标系是锥体的“局部坐标系”。

    圆锥的参数方程如下:

    OCCT中的圆锥面(Geom_ConicalSurface)

    其中,O,XDir,YDir和ZDir分别是锥体局部坐标系的原点,“X方向”,“Y方向”和“Z方向”,Ang是锥体顶点的半角,R是参考半径,u的取值范围是OCCT中的圆锥面(Geom_ConicalSurface),v的取值范围是OCCT中的圆锥面(Geom_ConicalSurface)

    在OCCT中,圆锥面的创建如下:

Geom_ConicalSurface::Geom_ConicalSurface ( const Ax3& A3 ,  const Standard_Real Ang, const Standard_Real R) 
                    :radius(R), semiAngle (Ang) 
{
  if (R < 0.0 || Abs(Ang) <= gp::Resolution() || Abs(Ang) >= M_PI/2.0 - gp::Resolution()) 
    Standard_ConstructionError::Raise();
  
  pos = A3;
}

    A3是圆锥面所在的局部坐标系,Ang是圆锥面的半角,取值范围是 OCCT中的圆锥面(Geom_ConicalSurface),R是半径。A3的Z轴方向定义了锥面的对称轴方向。

Geom_ConicalSurface::Geom_ConicalSurface ( const gp_Cone& C )
                    : radius (C.RefRadius()), semiAngle (C.SemiAngle()) 
{
   pos = C.Position();
}

    通过gp中的非临时面创建新的面。