网站大量收购闲置独家精品文档,联系QQ:2885784924

OCC类基础解析.doc

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OCC类基础解析

一直在用OCC作项目,但这方面的中文资料很少,看来OCC在中国还不是十分普及; 后来,项目中使用OCC和DirectX结合使用,取得了很好的效果; ?随着OCC6.3版本的推出,Open CASCADE在速度方面已有了很大的改变。以下为一些OCC的基础知识,愿与各位OCC爱好者共同学习; 一:OCC中的基础类: gp_Pnt 在OCC中,gp_Pnt表示一个顶点,gp_Vec表示一个向量,可以用两个顶点来生成一个向量。 比如: gp_Pnt P1(0,0,0);??????????????????????? gp_Pnt P2(5,0,0);??????????????????????? gp_Vec V1 (P1,P2); 向量有一个方法.IsOpposite(),可以用来测试两个向量的方向是相对还是平行; 比如:???????????????????????????????????????? gp_Pnt P3(-5,0,2); gp_Vec V2 (P1,P3);?????????????????????????????????????????? Standard_Boolean result =V1.IsOpposite(V2,Precision::Angular()); ? 另外向量还有一些重要方法: --Standard_Real Magnitude() const;计算向量的大小; --Standard_Real SquareMagnitude() const;计算向量的平方; --向量的加减乘除操作; --向量的单位化; --通过一个点,线,面得出其镜像的向量; --向量的旋转,平移,缩放; 具体的函数名称可以看OCC的头文件说明; ? 有时需要决定一组空间点是位于一个点;一条直线,或一个平面,或一个空间: OCC中提供了相应的算法; 比如: TColgp_Array1OfPnt array (1,5); // sizing array????????????????? 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_PEquation PE (array,1.5 );???????????????????????????????? ???????????????????????????????????????????????????????????????? if (PE.IsPoint()){ ??} //是否是同一个点??? gp_Lin L;??????????????????????????????????????????????????????? if (PE.IsLinear()) {??L = PE.Line();????} //是否位于一条直线上;???????????????????? if (PE.IsPlanar()){ ??}???//是否在一个平面内;? if (PE.IsSpace()) { ??}? ? gp_Dir类: 此类用来描述3D空间中的一个单位向量; 常用方法: (1):IsEqual(const gp_Dir Other,const Standard_Real AngularTolerance) const;两个单位向量是否相等; (2):IsNormal(const gp_Dir Other,const Standard_Real AngularTolerance) const;两个单位向量的夹角是否是PI/2; (3):IsOpposite(const gp_Dir Other,const Standard_Real AngularTolerance) const;两个单位向量是否方向相反; (4):IsParallel(const gp_Dir Other,const Standard_Real AngularTolerance)

文档评论(0)

little28 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档