好文档 - 专业文书写作范文服务资料分享网站

OCC类基础

天下 分享 时间: 加入收藏 我要投稿 点赞

--可以得到曲线得一般特征,比如连续得等级,封闭特点,周期性,边界参数; --当用一个矩阵应用于曲线或原始曲线转化后进行相应参数得改变;

所有得曲线必须几何连续,曲线至少一阶可导。一般来说,在生成一个曲线时,要先检查一下所应用得参数就是否可以生成一个光滑曲线;否则会出现错误; 另外注意一点:不可以构造空长度得曲线或自相交得曲线; 此类得基类就是Geom2d_BoundedCurve类:

它就是一个抽象类;描述二维空间中得边界曲线得一般行为;除了Geom2d_TrimmedCurve就是它得一个派生类外,它还有二个派生类: - Geom2d_BezierCurve - Geom2d_BSplineCurve

Geom2d_BoundedCurve类得基类就是Geom2d_Curve类:

Geom2d_Curve:抽象类;此抽象类描述了2D空间得曲线得一般特征;派生出得类有多个:包括直线,园,二次曲线,Bizier,BSpline曲线等;这些曲线得特点就是可以参数化;

Geom2d_Curve类得基类就是Geom2d_Geometry类;

此抽象类主要定义了曲线得变换,平移,旋转,缩放及拷贝等方法;

Geom2d_Geometry类得基类就是MMgt_TShared类; 此抽象类为管理对象得基类,可以引用计数,及删除方法;

Standard_Transient:此抽象类为所有类共同得基类; Geom2dAPI_InterCurveCurve类: 此类用来实现二维曲线得相交;

一种情况就是曲线与曲线得相交,另外一种情况就是曲线自身得相交; 主要方法有:

--Standard_Integer NbPoints() const;相交点数; --Standard_Integer NbSegments() const;切线相交数;

--void Segment(const Standard_Integer Index,Handle(Geom2d_Curve)& Curve1,Handle(Geom2d_Curve)& Curve2) const;返回其中一个线段;

下面得示例就是两个曲线相交得例子:

首先,生成第一个曲线,在这里,应用点数组来生成一个曲线; --定义数组

Handle(TColgp_HArray1OfPnt2d) harray = new TColgp_HArray1OfPnt2d (1,5); // sizing harray

--输入点数组得值

harray->SetValue(1,gp_Pnt2d

(0,0)); harray->SetValue(2,gp_Pnt2d

(-3,1)); harray->SetValue(3,gp_Pnt2d

(-2,5)); harray->SetValue(4,gp_Pnt2d

(2,9)); harray->SetValue(5,gp_Pnt2d

(-4,14));

--检测一下点与点之间就是否为同一点;0、01为公差值,依实际需要可以更改此参

数;

Geom2dAPI_Interpolate anInterpolation(harray,Standard_False,0、01); --生成曲线

anInterpolation、

Perform();

Handle(Geom2d_BSplineCurve) SPL = anInterpolation、Curve();

--第二个曲线用两点来生

gp_Pnt2d P1(-1,-2);gp_Pnt2d P2(0,15);gp_Dir2d V1 =

gp::DY2d();

Handle(Geom2d_TrimmedCurve)

TC1= GCE2d_MakeSegment(P1,V1,P2);

--下面进行曲线得求

交 Standard_Real tolerance =

Precision::Confusion(); Geom2dAPI_InterCurveCurve ICC (SPL,TC1,tolerance);

--得到交点

Standard_Integer NbPoints =ICC、

NbPoints();

gp_Pnt2d

PK; for (Standard_Integer k =

1;k<=NbPoints;k++) {

PK = ICC、

Point(k);

// 针对每个交点,进行相应处理; }

Geom2d_OffsetCurve类: 此类用来实现偏移曲线; 比如:

--生成一个曲线

TColgp_Array1OfPnt2d array (1,5); // sizing array

array、SetValue(1,gp_Pnt2d (-4,0)); array、SetValue(2,gp_Pnt2d (-7,2)); array、SetValue(3,gp_Pnt2d (-6,3)); array、SetValue(4,gp_Pnt2d (-4,3)); array、SetValue(5,gp_Pnt2d

(-3,5));

Handle(Geom2d_BSplineCurve) SPL1 = Geom2dAPI_PointsToBSpline(array);

--生成一个偏移曲

线

Standard_Real dist =

1;

Handle(Geom2d_OffsetCurve) OC

=

new

Geom2d_OffsetCurve(SPL1,dist);

Standard_Boolean result = OC->IsCN(2); GccAna_Pnt2dBisec类 此类实现两点之间得等分线、 示例:

gp_Pnt2d P1(1,2); gp_Pnt2d P2(4,5); gp_Lin2d L; GccAna_Pnt2dBisec B(P1,P2);

if (B、IsDone()) { L = B、ThisSolution(); }

因为所生成得为直线,所以显示时要转化为线段: if (B、IsDone()) {

Handle(Geom2d_TrimmedCurve) aLine = GCE2d_MakeSegment(L,-8,8); Handle(ISession2D_Curve) aCurve = new ISession2D_Curve(aLine); aDoc->GetISessionContext()->Display(aCurve, Standard_False); } gce_MakeCirc2d类

用来创建园:创建园得方法很多,主要构造方法有: --园心与通过得一点;

--通过一个园与一个距离值,创建一个同心园; --三点决定一个园; --园心与半径; gp_Elips2d类:

可以生成一个椭园,也可以生成椭园上得一段园弧; 比如:

Standard_Real major =

12;

Standard_Real minor =

4;

gp_Ax2d axis =

gp::OX2d();

gp_Elips2d

EE(axis,major,minor);;

Handle(Geom2d_TrimmedCurve) arc = GCE2d_MakeArcOfEllipse(EE,0、0,PI/4); 上面就是利用长短轴得方法构造椭圆,也可以用二次方程得方式来构造椭园;

其中椭园类中方法可以求出焦点1与焦点2得位置,两焦点之间得位置,离心率;旋转,平移,缩放等操作、

三、关于面得类 gp_Pln类:

定义一个平面,构造得方法可以就是点法式,或通过ABCD系数; 另外,还提供了一些常用得方法,比如:

--求点到平面,线到平面,平面与平面得距离及平方距离; --点就是否在平面内,线就是否在平面内; --通过一个点,一个轴得镜像平面; --平面得旋转,缩放与平移; Geom_ElementarySurface类:

此类用来描述一个表面,此类得派生类有: 平面;园柱面;锥面;球面;园环面;

它得基类就是Geom_Surface,就是一个抽象类; Geom_Surface类得基类就是Geom_Geometry类;

Geom_RectangularTrimmedSurface类: 用来生成一个有边界得平面; 比如:

Handle(Geom_Plane) aProjectionPlane = GC_MakePlane(ProjectionPlane)、Value(); Handle(Geom_RectangularTrimmedSurface) aProjectionPlaneSurface=

new

Geom_RectangularTrimmedSurface(aProjectionPlane,-8、,8、,-12、,12、); DisplaySurface(aDoc,aProjectionPlaneSurface); 此类得基类就是Geom_BoundedSurface类; 此类得兄弟类还有 - Geom_BezierSurface, - Geom_BSplineSurface

OCC类基础

--可以得到曲线得一般特征,比如连续得等级,封闭特点,周期性,边界参数;--当用一个矩阵应用于曲线或原始曲线转化后进行相应参数得改变;所有得曲线必须几何连续,曲线至少一阶可导。一般来说,在生成一个曲线时,要先检查一下所应用得参数就是否可以生成一个光滑曲线;否则会出现错误;另外注意一点:不可以构造空长度得曲线或自相交得曲线;此类得基类就是Geom2d_BoundedCur
推荐度:
点击下载文档文档为doc格式
4cogn6cglz58u602x74s2b61z97lf1017hq
领取福利

微信扫码领取福利

微信扫码分享