第9讲 三维几何建模-2
线面求交 线线求交
一平面对一直线段的遮挡关系判断算法:
(1)若线段两端点及视点在给定平面同侧(图a),线段可 见,转7
(2)若线段投影与平面投影的包围盒无交(图b),线段可 见,转7
图a 视点与线段同侧
图b 包围盒不交
(3)求直线与平面的交点。若无交点,转4; 否则,判断交点在线段内部或外部,然后 a)若交点在线段内部,交点将线段分成两段, 与视点同侧的一段不被遮挡,转7; 另一段在视点异侧,转4。 b)若交点在线段外部,转4。
(4)求剩下线段的投影与平面边界投影的所有交点
根据交点在原直线方程的参数值求出Z值(即深度) 若无交点,转5。
(5)以上所求得的各交点将线段的投影分成若干段,
求出第一段中点。
(6)若第一段中点在平面的投影内,则相应的段被遮 挡,否则不被遮挡;其他段的遮挡关系可依次交替取值 进行判断。(见图d) (7)循环结束。
2) 计算两物体所有表面之间交线
曲面求交算法(如前介绍)
例:A与B交运算(A∩B)
交运算的结果(A∩B)
3) 对两物体表面进行判定分类
顶部红色表面
其余蓝色表面
交运算的结果(A∩B) 例:A与B交运算(A∩B)
4) 建立新的数据结构 形成新形体的BREP表达,并 能进行下一轮布尔运算
例:A与B交运算(A∩B)
交运算的结果(A∩B)
CAD系统建模过程
形体定义 输入1 形体定义 输入2 内部CSG +BREP 表达 布尔 运算 结果形体 BREP表达 三角 剖分
形体定义 输入n 显示 渲染
显示数 据结构 显示参 数定义
9 、几何造型-2
1.常用几何形体定义方法
2. 布尔运算基本原理
3. 三维形体的显示原理
不同消隐算法的关键在于加速计算的策略和方法 不同。现在的商用CAD系统消隐算法正确率不能达到 9 0%,速度也有待提高。 重点在于线段可见性的判断速度和正确性。
C)画家算法原理 1) 把屏幕置成背景色;
2)物体的各个面按其离视点的远→近进行排序, 排序结果存在一张深度优先级表中;
3)按照从表头到表尾的顺序逐个绘制各个面。
对于设计师而言,所关心的是如何快捷、方便 地设计一个满足需求的零件结构(即零件形体)。 对CAD系统来说,形体定义就是用少量的参数 描述几何形体的大小、形状和位置。 几何造型系统的优劣首先取决于是否提供好的 形体定义能力,除了要有良好的用户界面以外,还 需提供多种造型方法,这样不仅能扩大造型系统的 几何覆盖率,而且能提高工程师的设计效率。
显示方法:遍历所有多边形网格的点表
和边表。 两种显示状态可以任选: a)仅显示轮廓边(内部边不显示) b)显示所有离散多边形 特点:简单快捷,但有二义性。
3)三维形体线框消隐显示算法
线框显示往往导致理解的二义性,如下图。
为消除二义性,CAD系统经常采用消除遮挡的不 可见线或面的显示算法。 习惯上称作消除隐藏线和隐藏面,简称消隐。
经过三角剖分处理,三维零件形体表面都生成 并记录了完整的多面体离散数据(即显示数据) CAD系统中的显示算法(线框图、消隐图、真实 感显示图等)大多数都是基于该多面体离散数据的 算法处理。
2)三维形体的线框图显示算法
经过三角剖分处理,计算机内部增加 了完整的三维形体逼近多面体近似表达数 据结构(即表面全部由以三角形为主的多 边形构成,如右下图所示)。 在线框显示模型中,为显示方便,分 别对边界边和内部边作标识。
基于上述分析.当物体采用边界表示时,它们之间的集合 运算可分为以下步:
集合运算步骤
1) 预检查两物体是否相交
利用包容盒加速判断
例:A与B交运算(A∩B)
常用的四种包容盒:
轴对齐包容盒AABB
d1min n1 n2 n3 n4 s1
有向包容盒OBB
d1max
交运算的结果(A∩B)
球包容盒 离散有向多面体K-DOP
几何造型中的布尔运算实质上是对集合中的成员进行分类 的问题。
经过正则集合运算后所产生的新物体的边界是原两拼合物 体边界的一个子集,即:
例如,考察A、B两物体的交所形成拼合体的边界如下图所示, 由上式则有:
b(A - B) (bA U bB)
bB的一部分
Aቤተ መጻሕፍቲ ባይዱ
B
C
bA的一部分
由于A、B为正则点集,因此A、B均可表示为边界点与体内点 的集合,即:
旋转扫变换通常由用户简单地定义一截面轮廓,然后绕 给定轴线旋转一定的角度生成旋转体。
广义扫变换
值得说明的是:用户仅需按提示交互定义扫描截线及扫 描轨迹,计算机内部用CSG表达记录定义参数及历史,同时 自动生成定义形体的BREP表达模型。
局部操作
局部操作从宏观上来看不改变形体的整体结构, 只作局部修改。如圆角过渡、倒角等
常用几类形体输入方法: 1)基本体素法 2)扫描变换法 3)局部操作 4)特征表示
基本体素法
常用的基本体素有方盒、锥、柱、球、环等
绝大多数商用CAD系统都提供该功能,尤其是游戏系统应 用更广泛。用户仅需输入一些简单的参数便可以定义这些体 素的大小、形状和位置。因此商用系统提供自定义体素功能, 为用户定义专用的特征库提供方便。 值得注意的是:用户仅需按提示交互定义(对话框或简 单草图)形体,计算机内部用CSG表达记录定义参数及历史, 同时自动生成定义形体的BREP表达模型。
A∪B 并运算,其结果是求A、B 两个体素之和; A-B 差运算,其结果是从A 体减去B 体后余下的部分; A∩B 交运算,其结果是A、B两个体素的公共部分。
A 体 A
B 体 B
A+B
A-B
A∩B
布尔运算主要有一维、二维和三维布尔运算
几何造型中的布尔运算以集合论、拓扑学为理论基础。 早期造型系统规定形体是三维欧氏空间中的正则集合。 任何物体都可用三维欧氏空间中点的集合来表示。但 反过来,三维欧氏空间中任意点的集合却不一定对应于一 个物体,如一些孤立点、悬面、悬线等。 正则点集的定义就是为了避免孤立点、悬面、悬线。
(c)多面体的轮廓分类 (a)前向面 面 (b)后向
n V
为加速计算,将凸多面体变换,使 观察方向V与Z轴方向一致,则仅判断 后向面的法矢分量Nz>0即可
d) 凸多面体
凸多面体消隐算法如下:
//假设已知凸多面体的面—边—顶点表 Begin 对凸多面体变换使V与Z同向; foreach(face in 所有的面) { 计算面face的法矢z分量Nz; if(Nz < 0) { foreach (edge at face) 画出棱边edge; } } End
扫描变换法
扫描变换是基于一条曲线或表面或形体沿某一 路径运动而产生形体,现有CAD使用广泛。
平行扫和旋转扫变换是最基本的方法。如果在平扫过程中 引入缩放参数,还可以得到截面变化的锥形形体,如果扫描方 向与z轴成一夹角,扫出的形体将是一个错切体。
此外有自由扫、变截面扫、蒙皮技术等生成曲面和实体。
平行扫变换通常由用户简单地定义一截面轮廓,然后沿 指定方向平行延伸一定的距离生成平扫体
消隐算法的分类 消隐的对象是三维物体,消隐结果与观察物体有
关,也与视点有关。
A)凸多面体消隐算法 设V为由视点出发的观察向量,N为 某多边形面的法向量。若V· N>0,称该 多边形为后向面。若V· N<0,称该多边 形为前向面。 如右图c,后向面总是看不见的。 因此,对凸多面体(右图d)消隐, 仅需判断后向面,即V· N>0,就可把后 向面的所有棱边全部消除。
实体的特征表示
实体模型仅提供产品的几何形状信息,但不能显式 地标注尺寸,未提供公差、表面粗糙度、材料性能和加 工要求等重要的产品制造信息。
商用CAD系统中广泛采用特征造型方法弥补上述不 足。特征模型表达高层次的具有功能意义的实体,如孔、 槽等,其操作对象不是原始的几何元素,而是产品的功 能要素、技术信息和管理信息,体现设计意图。
9 、几何造型-2
1.常用几何形体定义方法
2. 布尔运算基本原理 3. 三维形体的显示原理
布尔运算基本原理
想一想,CAD系统是是如何将简单形体拼合成复杂 形体的?
常见物体(无论多复杂)均可用用三维空间点集来 表示;
复杂形体可通过简单形体的布尔运算生成,布尔运 算也称为集合运算; CAD中常用布尔运算(并、交、差)操作符有:
图d 分段交替取值
上述算法为一条边,一个面的情况,对多条边、 多各面则通过循环嵌套实现。
如果消隐对象有N条棱,当N很大时,用两两求 交的方法这个工作量是很大的O(N2)。为了提高算 法的效率,需要设法减少求交的工作量,因此相交测 试是关键。
如上述算法中仅需对可见子线段与其余平面进行 类似的可见性判断,对不可见线段不予计算。
非正则 点集
正则 点集
三维正则点集含义:无悬面、悬边及孤立点的有 限空间三维实体。
传统的点集之间的并、交、差运算可能改变点集的正则 性质。也就是说,两个正则点集的集合运算的结果可能产 生一个非正则点集。如图A、B两物体求交运算后,原来两物 体间互相重合的部分边界面被保留而形成悬挂面。
有必要对传统的点的集合运算施加一定的限制,为此定义
CAD技术及应用 第9讲 几何造型技术(2)
华中科技大学CAD中心 吴义忠
9 几何造型-2
1.常用几何形体定义方法 2. 布尔运算基本原理 3. 三维形体的显示原理
本章目的 1.了解CAD系统常用几何形体定义方法 2. 了解几何形体布尔运算基本原理 3. 了解三维几何形体的显示原理
常见几何形体定义方法
由于后显示的图形取代先显示的画面,而后显示 的图形所代表的面离视点更近,所以由远及近的绘制各 面,就相当于消除隐藏面。这与油画作家作画的过程类 似,先画远景,再画中景,最后画近景。由于这个原因, 该算法习惯上称为画家算法或列表优先算法。