Open CASCADE基础介绍(2)
比如:
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字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [学前教育]MC9S12XS256RMV1 xs128芯片手册4
- [学前教育]安东尼语录经典语录
- [学前教育]e级gps控制测量技术设计书
- [学前教育]苏教版2022-2022学年八年级下学期期末
- [学前教育]装修公司推广 营销
- [学前教育]家政服务合同(完整版)
- [学前教育]湖北省2016届高三联考语文试题
- [学前教育]爱立信无涯学习系统LTE题库1-LTE基础知
- [学前教育]揭秘大众柴油车作弊软件原理
- [学前教育]人才流失原因及对策分析
- [学前教育]房屋建筑施工工程劳务分包合同
- [学前教育]国际贸易实务试卷A卷09.6
- [学前教育]校园废品回收活动计划方案书范文格
- [学前教育]电大成本会计试题及答案
- [学前教育]大学物理实验 华南理工出版社 绪论答案
- [学前教育]爱丁堡产后抑郁量表
- [学前教育]液压冲击的危害、产生原因与防止方法(
- [学前教育]学生工作总结高一学生期中考试总结_020
- [学前教育]人民医院医疗废物管理规章制度大全
- [学前教育]阳光维生素的巨大抗癌潜能阅读题答案.d
- 马云在云锋基金江苏论坛闭幕式的发言
- 试论小学体育教育中的心理健康教育-教
- 语文A版一年级下册《语文乐园一》教学
- 2021四川大学物理化学考研真题经验参考
- [人教A版]2015-2016学年高中数学 第二
- 终端网点销售返利协议书
- 江苏省2015年眼科学主治医师青光眼考试
- 2017年部编人教版八年级语文上册教案
- 十一中学七年级英语上册Unit7Howmuchar
- 以赛促教的创新性实验教学机制建设实践
- 平凉市崆峒区2015七年级下生物期末试题
- 琶洲(地块五)A、B塔楼1、2#塔吊基础
- 一级医院工作制度与人员岗位职责
- 2018北京西城区高三二模理科数学试题及
- 炒股密码线技术 - 图文
- 职高学生生涯发展辅导教案
- 语文人教版四年级上册8 世界地图引出的
- 最新最新人教版二年级上册全册数学教案
- 2017高考英语全国2卷精彩试题(有问题
- 普通心理学笔记




