3. 平时作业
完成三维实体模型中 B_Rep 或 CSG 表示法的一种 C/C++语言的数据结构定义。
物体的 CSG 树表示
物体的体素构造表示法(Constructive Solid Geometry, CSG)是用两个物
体间的并、交、差正则集合运算操作生成一个新的物体的方法。
CSG 表示法:先定义一些形状比较简单的常用体素,如方块、圆柱、圆锥、球、
棱柱等。然后用集合运算并、交、差把体素修改成复杂形状的形体。早期的 CSG
模型仅使用代数方程及半空间的概念,体素只支持多面体与二次曲面体,而不支
持表面含有自由曲面的实体。整个模型是棵树结构,最终形体的表面交线与有效
区域没有显式给出,不能直接用于 NC 加工与有限元分析等后继处理。
集合运算构造实体的过程可用二叉树结构表示,称该二叉树为 CSG 树。树的叶节
点表示体素或带有几何变换参数的体素,非叶节点表示施加于其子节点的正则集
合算子,或称布尔算子。树的根节点表示集合运算的最终结果,也即希望得到的
实体。
边界表示法
边界表示法(Brep-Boundary Representation)通过描述物体的边界来表示
一个物体。所谓的边界是指物体的内部点与外部点的分界面,定义了物体的边界,
该物体也就被唯一地定义了。如下图:
边界表示法一个重要的特点是:描述物体的信息包括几何信息与拓扑信息两
个方面。几何信息是指物体在欧氏空间中的位置、形状和大小;而拓扑信息是指
拓扑元素(顶点、边和表面)的数量及其相互间的连接关系。拓扑信息构成物体
的“骨架”,而几何信息则犹如附着在这一“骨架”上的“肌肉”。
几何信息有面(face)、环(loop)、边(edge)和点(vertex),拓扑信息
有模型(model)、 区域(region)、外壳(shell)、面引用(face use)、环引
用(loop use)、边引用(edge use)和点引用(vertex use)。如下图是用辐射
边数据结构表示的一个形体模型,注意其中实体、面、线是用统一的数据结构表
示的。