OCC类基础Word文档格式.docx
- 文档编号:14196860
- 上传时间:2022-10-20
- 格式:DOCX
- 页数:50
- 大小:39.80KB
OCC类基础Word文档格式.docx
《OCC类基础Word文档格式.docx》由会员分享,可在线阅读,更多相关《OCC类基础Word文档格式.docx(50页珍藏版)》请在冰豆网上搜索。
gp_VecV2(P1,P3);
Standard_Booleanresult=V1、IsOpposite(V2,Precision:
:
Angular());
另外向量还有一些重要方法:
--Standard_RealMagnitude()const;
计算向量得大小;
--Standard_RealSquareMagnitude()const;
计算向量得平方;
--向量得加减乘除操作;
--向量得单位化;
--通过一个点,线,面得出其镜像得向量;
--向量得旋转,平移,缩放;
具体得函数名称可以瞧OCC得头文件说明;
有时需要决定一组空间点就是位于一个点;
一条直线,或一个平面,或一个空间:
OCC中提供了相应得算法;
TColgp_Array1OfPntarray(1,5);
//sizingarray
array、SetValue(1,gp_Pnt(0,0,1));
array、SetValue(2,gp_Pnt(1,2,2));
array、SetValue(3,gp_Pnt(2,3,3));
array、SetValue(4,gp_Pnt(4,4,4));
array、SetValue(5,gp_Pnt(5,5,5));
GProp_PEquationPE(array,1、5);
if(PE、IsPoint()){
}//就是否就是同一个点
gp_LinL;
if(PE、IsLinear()){
L=PE、Line();
}//就是否位于一条直线上;
if(PE、IsPlanar()){
}
//就是否在一个平面内;
if(PE、IsSpace()){
gp_Dir类:
此类用来描述3D空间中得一个单位向量;
常用方法:
(1):
IsEqual(constgp_Dir&
Other,constStandard_RealAngularTolerance)const;
两个单位向量就是否相等;
(2):
IsNormal(constgp_Dir&
两个单位向量得夹角就是否就是PI/2;
(3):
IsOpposite(constgp_Dir&
两个单位向量就是否方向相反;
(4):
IsParallel(constgp_Dir&
两个单位向量夹角O或PI;
(5):
Angle(constgp_Dir&
Other)const;
求两个向量之间得夹角;
(6):
voidCrossCross(constgp_Dir&
V1,constgp_Dir&
V2);
计算三个向量之间得叉积;
(7):
Standard_RealDot(constgp_Dir&
计算点积;
(8):
Standard_RealDotCross(constgp_Dir&
V2)const;
计算叉积再点积;
(9):
gp_DirReversed()const;
得到反方向,
在OCC中用
gp_Lin2d
类,来生成一个二维空间得直线,有它得原点与单位向量;
gp_Ax2d
类:
通过原点与X方向单位与Y方向单位建立一个二维坐标系;
利用sense参数可以决定就是右手系还就是左手系;
可以利用平移、旋转、缩放、镜像来更改坐标系;
类似地,gp_Ax3类:
用来描述一个3D空间得坐标系。
而gp_Ax2类用来表示一个二维空间坐标系;
可以为右手系,也可以就是左手系;
二、曲线类
GeomAPI与GeomConvert包:
GeomAPI开发包提供了一个几何体得可编程应用程序接口;
求点P与曲线C得距离D:
D=GeomAPI_ProjectPointOnCurve(P,C);
或者
GeomAPI_ProjectPointOnCurvePonC(P,C);
D=PonC、LowerDistance();
GeomConvert包提供了一些全局函数,可以用来实现转化一个Geom曲线为BSpline曲线等;
Handle(Geom_BSplineSurface)aPipeSurface=
Handle(Geom_BSplineSurface):
DownCast(aPipe、Surface());
Handle(Geom_BSplineSurface)anotherBSplineSurface=
GeomConvert:
SplitBSplineSurface(aPipeSurface,1,2,3,6);
OCC中三维几何曲线得类型有:
--线
--园
--椭圆
--二次曲线
--抛物线
--Bezier曲线
--BSpline曲线
可以将一个二维得几何曲线转化为某个平面内得一个三维曲线:
Standard_Realradius=5;
gp_Ax2dax2d(gp_Pnt2d(2,3),gp_Dir2d(1,0));
//生成一个二维园
Handle(Geom2d_Circle)circ2d=newGeom2d_Circle(ax2d,radius);
gp_Ax2dcirc2dXAxis=circ2d->
XAxis();
//
然后,在这个平面里转化为三维曲线;
Handle(Geom_Curve)C3D=GeomAPI:
To3d(circ2d,gp_Pln(gp_Ax3(gp:
XOY())));
Handle(Geom_Circle)C3DCircle=Handle(Geom_Circle):
DownCast(C3D);
gp_Ax1C3DCircleXAxis=C3DCircle->
另外,可以以将一个三维曲线,投影到一个平面内,从而生成一个二维曲线
gp_PlnProjectionPlane(gp_Pnt(1,1,0),gp_Dir(1,1,1));
Handle(Geom2d_Curve)C2D=GeomAPI:
To2d(C3D,ProjectionPlane);
Handle(Geom2d_Circle)C2DCircle=Handle(Geom2d_Circle):
DownCast(C2D);
gp_Ax2dC2DCircleXAxis=C2DCircle->
将一个基本几何图形进行空间变换可以使用它自带得函数:
Handle(Geom_Geometry)aRotatedEntity
=circle->
Rotated(gp:
OZ(),PI/4);
如果想获取图形得类型名称:
Standard_CStringaRotatedEntityTypeName=aRotatedEntity->
DynamicType()->
Name();
gp_Parab2d类:
描述一个平面内得抛物线;
示例:
gp_Pnt2dP(2,3);
gp_Dir2dD(4,5);
gp_Ax22dA(P,D);
gp_Parab2d
Para(A,6);
GCE2d_MakeParabola类:
生成一个抛物线图形;
Geom2d_BSplineCurve类:
描述样条曲线;
Geom2dAPI_Interpolate类:
通过一组点来修改一个样条曲线;
FairCurve_Batten类:
用一个常量或线性增加得值来构造曲线;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OCC 基础