OpenCascade拓扑对象之:Face的方向、参数域和曲面间的关系
@font-face { font-family: "Times New Roman" }
@font-face { font-family: "宋体" }
@font-face { font-family: "Wingdings" }
p.MsoNormal { mso-style-name: 正文; mso-style-parent: ""; margin: 0 0 0.0001pt; mso-pagination: none; text-align: justify; text-justify: inter-ideograph; font-family: "Times New Roman"; mso-fareast-font-family: 宋体; color: rgba(0, 0, 0, 1); font-size: 10.5pt; mso-font-kerning: 1.0000pt }
{ font-family: "Times New Roman" }
span.msoIns { mso-style-type: export-only; mso-style-name: ""; text-decoration: underline; text-underline: single; color: rgba(0, 0, 255, 1) }
span.msoDel { mso-style-type: export-only; mso-style-name: ""; text-decoration: line-through; color: rgba(255, 0, 0, 1) }
table.MsoNormalTable { mso-style-name: 普通表格; mso-style-parent: ""; mso-style-noshow: yes; mso-tstyle-rowband-size: 0; mso-tstyle-colband-size: 0; mso-padding-alt: 0.0000pt 5.4000pt 0.0000pt 5.4000pt; mso-para-margin: 0pt; mso-para-margin-bottom: .0001pt; mso-pagination: widow-orphan; font-family: "Times New Roman"; font-size: 10pt; mso-ansi-language: #0400; mso-fareast-language: #0400; mso-bidi-language: #0400 }
@page { mso-page-border-surround-header: no mso-page-border-surround-footer: no }
@page Section0 { margin-top: 72pt margin-bottom: 72pt margin-left: 90pt margin-right: 90pt size: 595.3000pt 841.9000pt layout-grid: 15.6000pt }
div.Section0 { page: Section0 }
Face的方向标识的是Face的法失是否和曲面的法失同向,如果同向,则为TopAbs_FORWARD,反向则为TopAbs_REVERSED。该方向对Face的参数域和裁剪环的方向,都有影响。
默认情况下,Face的裁剪环方向是基于曲面的法失方向定义的,即:
For a surface limited by an edge the default region is on the left of the edge following its natural direction. More precisely it is the region pointed to by the vector product of the normal vector to the surface and the vector tangent to the curve.
注意:这里是曲面的法失方向和Edge的切矢方向的叉乘指向的方向。
根据右手规则,外环的方向默认应当是绕曲面的法失逆时针方向旋转,裁剪环中Edge也要满足这种方向的要求。当生成裁剪环中Edge对应的参数曲线时,是基于曲面surface来生成的。
通常情况下,裁剪环是根据曲面生成的,因此和Face方向为TopAbs_FORWARD时是一致的。
当Face反向时,虽然仅仅改变了方向标记。但裁剪环理论上也应当随之反向,裁剪环中的Edge也应当随之反向。这些的处理,是在通过TopExp_Iterator或TopExp_Explorer类遍历子对象时,自动组合上父对象的方向实现的。
例如:当初始Face和surface为同向时,裁剪环也符合曲面的方向,则Face和Wire的方向都是TopAbs_FORWARD。当Face反向后,方向变为TopAbs_REVERSED,Wire组合上了Face的方向,因此也变为了TopAbs_REVERSED的,因此也反向了。但这里的反向,仅仅是Wire的方向属性改变了,Wire内部的Edge的顺序并没有反向。
因此,Face的裁剪环Wire中,Edge的顺序并不总是满足拓扑方向的要求,也因此OCCT的内部提供了对此处理的函数,例如ShapeFix中的相应类。
当OCCT内部对裁剪环进行操作时,特别是基于曲面进行操作时,往往会进行如下处理,例如:
Tempface = face.Oriented(TopAbs_FORWARD)
获取一个正向的临时Face,基于该Face进行裁剪环的处理,因为此时face的法失和曲面的法失是一致的,因此裁剪环数据通常是和曲面保持一致的,基于曲面进行处理会非常方便。例如:判断一个裁剪环是否是外环,通常是根据正向Face来判断,如果Face反向了,则本来是外环的变为了内环,诸如此类。
OpenCascade拓扑对象之:Face的方向、参数域和曲面间的关系的更多相关文章
- OpenCascade拓扑对象之:拓扑对象方向继承关系
@font-face { font-family: "Times New Roman" } @font-face { font-family: "宋体" } @ ...
- OpenCascade拓扑对象之:有向边和共边
@font-face { font-family: "Times New Roman" } @font-face { font-family: "宋体" } @ ...
- OpenCascade拓扑对象之:TopoDS_Shape的三要素
@font-face { font-family: "Times New Roman" } @font-face { font-family: "宋体" } @ ...
- OpenCascade拓扑对象之:拓扑对象的层次结构
@font-face { font-family: "Times New Roman" } @font-face { font-family: "宋体" } @ ...
- OpenCascade拓扑对象之:TopoDS_Shape对象及其子对象
@font-face { font-family: "Times New Roman" } @font-face { font-family: "宋体" } @ ...
- .NET中 类型,对象,线程栈,托管堆在运行时的关系
.NET中 类型,对象,线程栈,托管堆在运行时的关系 The Relationship at Run Time between Types,Objects,A Thread's Stack,and T ...
- [读书心得] .NET中 类型,对象,线程栈,托管堆在运行时的关系
.NET中 类型,对象,线程栈,托管堆 在运行时的关系 The Relationship at Run Time between Types,Objects,A Thread's Stack,and ...
- 【.Net基础一】 类型、对象、线程栈、托管堆运行时的相互关系
目前在看CLR via C#,把总结的记下来,索性就把他写成一个系列吧. 1.[.Net基础一] 类型.对象.线程栈.托管堆运行时的相互关系 2.[.Net基础二]浅谈引用类型.值类型和装箱.拆箱 J ...
- ASP.Net内置对象之网页之间传参(一)
Response对象 主要运用于数据从服务器发送到浏览器,可以输出数据.页面跳转.各个网页之间传参数等操作. 以下讲解几个常用例子: 在页面中输出数据 主要通过Write .WriteFile方法输出 ...
随机推荐
- synchronized 锁的升级
synchronized 的基本认识 在多线程并发编程中 synchronized 一直是元老级角色,很 多人都会称呼它为重量级锁.但是,随着 Java SE 1.6 对 synchronized 进 ...
- IntegerCache的妙用和陷阱!
考虑下面的小程序,你认为会输出为什么结果? public class Test { public static void main(String\[\] args) { Int ...
- Python-去除字符串中不想要的字符
问题: 过滤用户输入中前后多余的空白字符 ' ++++abc123--- ' 过滤某windows下编辑文本中的'\r': 'hello world \r\n' 去掉文本中unicode组 ...
- java泛型之通配符?
一.在说泛型通配符" ?" 之前先讲几个概念 1.里氏替换原则(Liskov Substitution Principle, LSP): 定义:所有引用基类(父类)的地方必须能透明 ...
- 如何学习iOS开发?iOS Developer Library足矣!
记得上高中的时候,寄信请教二哥学习经验,二哥来信介绍学习经验说:资料书要快速阅读,把书上的题做完,然后再买几套资料书(习题集)继续练习. 这是二哥的经验,因为他自学能力强,可以消化多套资料书. 我仿照 ...
- 在Python中使用OpenCV(CV2)对图像进行边缘检测
转载:https://blog.csdn.net/cumtb2002/article/details/107798767 Modules used: 使用的模块: For this, we will ...
- Python下的图像处理库,你选哪个?
奥里给~ 转载:https://blog.csdn.net/chen801090/article/details/105795068/ 在进行数字图像处理时,我们经常需要对图像进行读取.保存.缩放.裁 ...
- 开始在Windows上开发Android
介绍 鉴于您正在阅读这篇文章,您很可能已经知道android是什么了.可能.在科幻小说和电影中,机器人本质上是具有拟人化特征的机器人.还记得<星球大战>里的C-3PO吗?那<星际迷航 ...
- 5-kunernetes资源调度
1.创建一个pod的工作流程 master节点组件 1.apiserver --> etcd 2.scheduler 3.controller-manager node节点有那些组件 1.kub ...
- 【Office-Word妙手回春】Word文本秒转表格
第一步:Ctrl+A组合键,文本全选 第二步:插入→表格→文本转换成表格 第三步:在"文字分隔位置",勾选相应的符号. 此处的分隔符为 空格. 点击"确定"按钮 ...