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