- 1、本文档共43页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一直在用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 AngularToleranc
您可能关注的文档
最近下载
- 统编版六年级语文上册习作《多彩的活动》精品课件(共84张PPT).pptx VIP
- 电厂2×600MW机组扩建工程建筑及安装工程土建专业主要技术施工方案.docx VIP
- 电厂2×600MW扩建(脱硫土建、安装)工程土建专业主要施工技术方案.docx VIP
- 电厂2×600MW机组扩建工程建筑及安装锅炉专业施工技术方案.docx VIP
- 煤电公司2×600MW机组工程汽机专业主要施工技术方案.pdf VIP
- 2X660MW超超临界燃煤机组工程qtz2500型塔式起重机安装的施工方案.doc VIP
- 2X660MW超超临界燃煤机组工程#2锅炉平台楼梯安装方案全案(终版).doc VIP
- 2X660MW超超临界燃煤机组工程#2锅炉平台楼梯安装的方案.doc VIP
- 电厂(2×660MW超超临界机组)机组安装工程锅炉专业施工方案.docx VIP
- 电厂(2×660MW超超临界机组)机组安装工程汽机专业施工方案.docx VIP
文档评论(0)