1. 三维物体的数据结构:
为了唯一表示一个物体,描述该物体的数据必须包含两类信息:
(1) 几何信息:描述物体的几何位置关系;
(2) 拓扑信息:说明物体的构成规则。
把这两类信息结合在描述物体的数据中,可以构成多种数据结构形式,不管哪种形式,都应该满足一些基本条件:
(1) 能够描述物体的几何关系和拓扑关系
(2) 对物体的描述应该是完整的,唯一的
(3) 便于对数据进行各种处理,且能获得较快的速度
(4) 数据冗余要小
通常采用层次结构描述三维物体
2. 多边形表面
多边形表;平面方程;多边形网格
3. 二次曲面和超二次曲面
球面;椭球面;环面;超二次曲面;
4. 柔性物体
5. Bezier曲面
6. B样条曲面
B 样条曲线与 Bézier 曲线相比较,其差别如下:
& 对于 Bézier 曲线,基函数的次数等于控制顶点数减 1;对于 B 样条曲线,基函数的次数与控制顶点数无关。
& Bézier 曲线的基函数即 Bernstein 基函数是多项式函数,B 样条曲线的基函数即 B 样条基函数则是多项式样条。
& Bézier 曲线是一种特殊表示形式的参数多项式曲线,B 样条曲线则是一种特殊表示形式的参数样条曲线。
& Bézier 曲线缺少局部性质,B 样条曲线具有局部性质。
7. NEBUS曲面
8. Coons曲面
9. 三维实体的表示
9.1三维实体建模:线框模型;表面模型;实体模型
线框模型 | 表面模型 | 实体模型 |
结构简单 处理容易 存储量小 图形有二义性 | 可生成彩色图像 计算面积、体积 进行数控加工 不能生成实体 | 可进行物性计算 工程分析 数控加工 布尔运算造型 |
存储量比: 1 | 10 | 100 |
市场占有比:5 | 3 | 2 |
9.2实体的表示方法:一般有一下几种:
① 参数化实体及其调用;
② 单元分解法;
③ 扫描变换法(把一维、二维实体经过平移或旋转等变换生成二维、三维实体);
④ 构造实体几何法(CSG 法);
⑤ 边界表示法(B-rep 法);
⑥ 半空间法;
⑦ 线框表示法。
实体的任何一种表示法都需要回答以下问题:
l 实体的边界是否提供了足够的信息,能否自动地计算实体的几何性质,包括显示、绘图等所需要的信息。
l 一个系统或算法如何确定它们操作的数据的有效性。
l 对一个实体是否有一种以上的表示方法?
l 相同的实体是否有不同的表示形式?如有,又如何表示之?
l 实体的某些几何性质是否只能从一种表示形式中求得,而不能从其他的表示形式中求得?
l 实体是否有最佳表示形式?
就当代几何造型系统实际应用而言, 实体的上述七种表示方法中以 CSG、B-rep 和单元分解法最为重要.
采用八叉树表示物体的优点有:
(1)物体间的集合运算十分简单,此时只需同时遍历表示物体的两棵八叉树,对相应的小立方体结点进行运算即可。
(2)计算物体的体积简便,只要从八叉树的根结点开始逐个累加标识为“满”的结点的立方体的体积,计算精度取决于八叉树的分割层数,当最下一层的“部分占有”叶结点都算作“满”时,算得的体积最大; 反之, 如果将这些叶结点都算作“空”时,所求得的体积最小。当然,更合理的算法是引入 Montacarlor 法,即产生随机数,根据随机数来取一部分“部分占有”的叶结点作为“满”结点。
(3)八叉树的数据结构简化了隐藏线隐藏面的消除算法。由于消隐算法的核心是排序,即将待显示物体上的点、线、面按它们离观察点的远近排列次序,离观察点近的元素遮挡远的元素,而物体的八叉树表示中,物体的各元素已按空间位置排列成一定的顺序。同一层次的八叉树结点组成三维空间中可线性分离的丛,因此很容易建立丛的优先级树。
八叉树的缺点有以下几点:
Ø 占用存储空间大。
Ø 物体的坐标变换代价高。当物体旋转一角度后,整个八叉树需要重新生成。对于平移而言,物体的八叉树结点分割保持不变,但沿平移方向的所有结点都需要重新编码。
Ø 与 B-rep 表示或 CSG 表示难以统一,而 B-rep 表示或 CSG 表示可以转化成八叉树表示。这种单向转换导致八叉树的表示形式难以集成到已有的基于 B-rep 表示或 CSG 表示的系统中。
减少八叉树表示所需的空间存储量的一种有效措施是线性八叉树。
10. 分形
分形的四种构成方法
(1)基于 L 系统的分形模型;
(2)迭代函数系统( IFS )模型;
(3)粒子系统模型;
(4)随机插值模型。
典型的分形模型:
n Koch 曲线
n Dragon 曲线
n Mandelbrot 集和 Julia 集
n 其他