教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 学前教育 >

Open CASCADE基础介绍(2)

来源:网络收集 时间:2026-08-23
导读: 比如: Handle(Geom_Geometry) aRotatedEntity = circle->Rotated(gp::OZ(),PI/4); 如果想获取图形的类型名称: Standard_CString aRotatedEntityTypeName = aRotatedEntity->DynamicType()->Name(); gp_Parab2d类:

比如:

Handle(Geom_Geometry) aRotatedEntity = circle->Rotated(gp::OZ(),PI/4); 如果想获取图形的类型名称:

Standard_CString aRotatedEntityTypeName = aRotatedEntity->DynamicType()->Name();

gp_Parab2d类:

描述一个平面内的抛物线; 示例:

gp_Pnt2d P(2,3); gp_Dir2d D(4,5); gp_Ax22d A(P,D); gp_Parab2d Para(A,6);

GCE2d_MakeParabola类:

生成一个抛物线图形;

Geom2d_BSplineCurve类:

描述样条曲线;

Geom2dAPI_Interpolate类:

通过一组点来修改一个样条曲线;

FairCurve_Batten类:

用一个常量或线性增加的值来构造曲线;可以用来设计木纹或塑料板条;图形为二维的,可以模拟物理样条或板条.

Geom2d_TrimmedCurve类:

此类通过两个值,定义曲线的一部分, --可以用来计算曲线的参数值和点坐标;

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

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

…… 此处隐藏:1258字,全部文档内容请下载后查看。喜欢就下载吧 ……
Open CASCADE基础介绍(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/591939.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)