《计算机图形学》07 三维形体的表示

合集下载

07三维物体表示

07三维物体表示
4 三维物体表示
现实生活中的三维物体是多种多样的,一般的制造物体大都可以 分解成多个几何实体。但还有许多物体则不能简单地进行分解, 比如,树、花、草地、山、海岸线、火、烟、焰火,,等等。 因此,三维物体的表示方式也是多种多样的。 对于三维物体,最常用的表示方式为边界表示法(Boundary representation, B-reps)。在一些三维造型系统中,还采用空间 分区(Space partitioning)表示法。 对于那些无法利用几何实体精确表示的三维物体,则可以利用分 形几何方法(Fractal geometry)或微粒系统(Particle system) 来表示。
4. 为程序添加 WM_CREATE、WM_DISTROY、WM_SIZE、 WM_ERASEBKGND 消息处理函数,其内容与 0.5 节中的内 容相同,只是应删去其中与时钟有关的语句。 该程序编译、链接成功后,其运行结果如下页图所示。
4.2.2 平面模型实例
1. 创建一个单文档应用程序,其工程名为 PlaneSolid; 2. 该程序的内容基本与上一个程序相同。不同的是,为了增强 程序输出的三维效果,需要为其添加光源、材质等元素。 首先,需要定义一个 SetLights( ) 函数: void CPlaneSolidView::SetLights( ) { float ambient[] = { 1.0f, 0.8f, 0.5f, 1.0f }; float position[] = { 0.0f, 0.0f, 0.0f, 1.0f }; float mat_diffuse[] = { 0.8f, 0.8f, 0.9f, 1.0f }; float mat_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };

第7章 三维物体的表示

第7章  三维物体的表示

第7章三维物体的表示本章提要·多边形表面·曲线/曲面基础知识·二次曲面·三次样条·Bézier曲线/曲面·B样条曲线/曲面·NURBS曲线/曲面·OpenGL中的曲线/曲面多边形和二次曲面(如多面体和椭圆体等)为简单的三维物体提供了精确的描述,自由曲线与曲面的构造技术在船舶、航空和汽车等领域以及机械产品的外形设计中得到了广泛的应用。

本章将对这些表达三维物体的方法进行介绍。

7.1多边形表面对于三维物体最简单的方式是用一组包围物体内部的平面多边形来表示。

对于多面体的多边形表示精确地定义了物体的表面特征,而对于曲面则可以采用多边形网格进行逼近。

下面我们来看一下多边形所在的平面方程。

平面方程可以表示为:由空间中不共线的三个点可以确定一个平面。

设:此方程的解可用行列式表示为:展开行列式,平面方程中的系数可表示为:平面的空间方向用平面的法向量表示,平面法向量的直角坐标分量即为上式计算所得的(A,B,C)。

当多边形的顶点指定为逆时针方向时,法向量方向满足右手法则,如图7.1所示。

图7.1平面的法向量平面的法向量可以通过向量的叉积得到。

以逆时针方向选定三个顶点V1,V2和V3。

则构成两个向量VlV2和VIV3,过这三点平面的法向量N可表示为:由此可解出平面法向量N的三个分量A,B和C,并由平面方程得出D。

已知平面上的任一点P及平面的法向量N,则平面方程可用向量的形式表示为:平面方程可用于判断空间中的点与平面的位置关系,如空间中任一点P(x,y,z)的坐标满足平面方程,即:则可判断其不在平面上。

对于封闭的多边形表面,我们也可以根据其平面方程的符号来判断空间中一点位于平面的内部还是外部。

如点坐标(x,y,z)满足:则该点位于面的内部。

反之如:则该点位于平面外部。

如满足:则该点位于平面之上。

7.2 曲线/曲面基础知识曲线与曲面是计算机辅助几何设计(Computer Aided Geometric Design)和计算机图形学中重要的研究内容之一:本节中将对曲线和曲面的描述方法进行介绍,重点将介绍形状以复杂方式自由变换的自由型曲线曲面。

计算机图形学3D图形表示方式

计算机图形学3D图形表示方式
uQ ( d / n p ) u p vQ (d / n p ) v p n ( d / n ) n d p p Q
1 0 M ' per 0 0 0 0 1 0 0 1 0 1/ d 0 0 0 0
观察坐标系中的简单一点透视
One-point perspective projection
Under the viewing-reference coordinate of uvn,
Suppose :projection plane n=0,projection reference point (0,0,d),point p(up,vp,np) of three dim space,it’s projection point Q, Line Parameter Eq:
Projection plan (side view)
Three Orthographic Projections(三视图)
V Z Z
主视图
侧视图
Y
X 俯视图
Y
X
Y
U
正平行投影(三视图)
V 主视图 Z 侧视图
tx X tz ty t x
(a,b)
ty tz
Y
பைடு நூலகம்
俯视图
Y
U
V
主视图 Z 侧视图
Front Elevation
U
Perspective Projection

Vanishing Point.
The perspective projections of any set of parallel lines that are not parallel to the projection plane converge to a vanishing point.

第7章 三维形体的表示

第7章 三维形体的表示

多边形表面Polygon Surfaces 二次曲面 样条表示: Bezier曲线
边界表示方法 (第6章)


立体构造Solid - Modeling 八叉树Octrees 不行还有我们! 分形Fractal L系统 …
空间区分表 示方法
第7章
7.2 多边形表面



三维图形中运用边界表示的最普遍方式是使用一组 包围物体内部的表面多边形。 很多图形系统以一组表面多边形来存储物体的描述。 由于所有表面以线性方程加以描述,因此会简化并 加速物体的表面绘制和显示。 某些情况下,多边形表示是惟一可用的,但很多图 形包也允许以其它方式对物体加以描述,如样条曲 面,它在转换到多边形表示后加以处理

插值样条曲线
三次样条插值

自然三次样条插值 Hermite样条插值 Cardinal样条插值 Kochanek_Bartels样条插值 Bezier曲线

逼近样条曲线

B_样条曲线
本章内容

曲线和曲面表示的基础知识 曲线和曲面的表示 (1) 插值和逼近样条 (2) Hermite样条曲线 (3) Bezier曲线曲面 (4) B样条曲线曲面 (5) 有理样条曲线曲面 (6) 曲线曲面的转换和计算
参数表示的优点: (1)满足几何不变性的要求; (2)有更大的自由度来控制曲线曲面的形状; (3)便于坐标变换 ; (4)便于处理斜率为无限大的问题,不会因此中断计算; (5)代数、几何相关和无关的变量是完全分离的,而且对变 量个数不限,便于向高维空间扩展。 (6)t∈[0,1], 直接定义了边界。便于曲线和曲面的分段、 分片描述。 (7) 易于用矢量和矩阵表示,从而简化了计算。

三维形体的表示

三维形体的表示

实体的定义(2)
❖ 将三维物体看作一个点集, 由内点 与边界点共同组成
❖ 内点:是指点集中的这样一些点, 点集的正则它 小运们 的算r:具 领有 域完全包含于i:该取内点点集运算的充分
❖ 边r •界A点:c •指i •那A些不具c:备取此闭包性运算质的点
集中的点。
(a) 带有悬挂边、孤立边、 (b) 物体的内部 孤立点的二维物体
偶数个多边形共享。 简单多面体
与球拓扑同构的多面体,即它可以连续变换成一个球。
二、欧拉公式 v-e+f=2
其中:V--顶点数 e--边数 f--面数
欧拉公式是一个多面体是简单多面体的 必要条件
广义欧拉公式
v-e+f-r=2(s-h)
r: 多面体表面上孔的个数 s: 相互分离的多面体数 h: 贯穿多面体的孔洞个数
象,不适合真实感显示
❖ 表面模型
将形体表示成一组表面的集合 形体与其表面一一对应,适合于真实感显示
实体模型
用来描述实体,主要用于CAD/CAM 包含了描述一个实体所需的较多信息,如几何信息、拓扑信 息
过程模型
❖ 以一个过程和相应的控制参数描述
例如: 用一些控制参数和一个生成规则描述的植物
❖ 以一个数据文件和一段代码的形式存在
包括----粒子系统、L系统、迭代函数系统等
2 实体的定义
❖ 抽象带来的问题(数学中的点线面是一 种抽象)
计算机中以数学方法描述的物体是无效的 不能够客观存在
❖ 为什么要求客观存在
CAD/CAM的需求
❖ 什么是客观存在(有效)—实体的定义
具有一定的形状 具有封闭的边界(表面) 内部连通的三维点集 占据有限的空间
个子立方体,对每一个子立方体进行同样的处理

第七章-三维实体的表示

第七章-三维实体的表示
◦ 对于一个占据有限空间的正则点集,如果其表面 是二维流形,则该正则点集是实体(有效物体)。这 个描述中的条件在计算机中是可检测的。
5
正则集合运算
通过对简单实体做适当的运算来构造复杂实 体是一个有效的方法。
实体可看作点集,对实体进行的运算主要是 集合运算。
但是对两个实体做普通的集合运算并不能保 证其结果仍是实体。如下,两个二维实体A 、B求交:
20
实体表示方法——边界表示
◦ 简单多面体是指与球拓扑同构的的多面体,可连 续变换成一个球。它满足下面的欧拉公式:
v-e+f=2
其中v,e,f分别是多面体的顶点数、边数和面数。欧 拉公式是一个多面体为简单多面体的必要但非充 分条件。
v=8,e=12,f=6
v=4,e=6,f=4
21
实体表示方法——边界表示
◦ 正则运算即为先对物体取内点再取闭包的运算。 r•A为A的正则点集。但正则点集未必是实体。
4
实体的定义
下图是带悬挂边与孤立点、边的二维物体, 以此为例来说明正则运算的过程。
二维流形:
◦ 是指这样一些面,其上任一点都存在一个充分小 的邻域,该领域与平面上的圆盘是同构的,即在 该邻域与圆盘之间存在连续的一一映射。

Sb SiS
◦ 由实体的定义可知,bS是封闭的,它将整个三维 空间分成了三个区域(iS,bS,eS)。边界bS与实体S是 一一对应的,确定了边界,也就唯一确定了一个 实体。为了求实体A,B的正则运算结果Aop*B ,只 要求出其边界b(Aop*B)即可。我们有:
b ( b A i) A B ( b b A ) ( b B e A )B
2
实体的定义
实体造型中必须保证物体的有效性(客观存在 )。

【中南大学】计算机图形学习题及答案

【中南大学】计算机图形学习题及答案

计算机图形学作业答案第一章序论第二章图形系统1.什么是图像的分辨率?解答:在水平和垂直方向上每单位长度(如英寸)所包含的像素点的数目。

2.计算在240像素/英寸下640×480图像的大小。

解答:(640/240)×(480/240)或者(8/3)×2英寸。

3.计算有512×512像素的2×2英寸图像的分辨率。

解答:512/2或256像素/英寸。

第三章二维图形生成技术1.一条直线的两个端点是(0,0)和(6,18),计算x从0变到6时y所对应的值,并画出结果。

解答:由于直线的方程没有给出,所以必须找到直线的方程。

下面是寻找直线方程(y =mx+b)的过程。

首先寻找斜率:m =⊿y/⊿x =(y2-y1)/(x2-x1)=(18-0)/(6-0) = 3 接着b在y轴的截距可以代入方程y=3x+b求出 0=3(0)+b。

因此b=0,所以直线方程为y=3x。

2.使用斜截式方程画斜率介于0°和45°之间的直线的步骤是什么?解答:(1)计算dx:dx=x2-x1。

(2)计算dy:dy=y2-y1。

(3)计算m:m=dy/dx。

(4)计算b: b=y1-m×x1(5)设置左下方的端点坐标为(x,y),同时将x end设为x的最大值。

如果dx < 0,则x=x2、y=y2和x end=x1。

如果dx > 0,那么x=x1、y=y1和x end=x2。

(6)测试整条线是否已经画完,如果x > x end就停止。

(7)在当前的(x,y)坐标画一个点。

(8)增加x:x=x+1。

(9)根据方程y=mx+b计算下一个y值。

(10)转到步骤(6)。

3.请用伪代码程序描述使用斜截式方程画一条斜率介于45°和-45°(即|m|>1)之间的直线所需的步骤。

假设线段的两个端点为(x1,y1)和(x2,y2),且y1<y2int x = x1, y = y1;float x f, m = (y2-y1)/(x2-x1), b = y1-mx1;setPixel( x, y );/*画一个像素点*/while( y < y2 ) {y++;x f = ( y-b)/m;x = Floor( x f +0.5 );setPixel( x, y );}4.请用伪代码程序描述使用DDA算法扫描转换一条斜率介于-45°和45°(即|m| ≤1)之间的直线所需的步骤。

《计算机图形学》07 三维形体的表示

《计算机图形学》07 三维形体的表示

表示,则:
V-E+F=2
V=8
E = 12
F=6
对于非简单多面体则应满足广义欧拉公式: V - E + F - H = 2( C - G ) 其中 V 、E 、F 的含义与前相同;
H 表示多面体表面上孔的个数;
C 表示独立的不相连接的多面体的个数; G 表示贯穿多面体的孔的个数。
V = 24
E = 36 F = 15
这些域的状态为空。 八叉树表示的特点: ① 定义形式简单。 ② 易于实现物体间的集合运算(并、交、差)。 ③ 可简化消隐算法,便于计算物体的体积、质量等。 ④ 存储量大。 改进:线性八叉树,前例可表示为 : {1,2,3,4,51,53,55,565,566},
2.表面模型 把线模型中棱线包围的部分定义为面,所形成的模型就是表 面模型。
采用表面模型,物体的边界确实可以全部定义,但是物体的
实心部分在边界的哪一侧是不明确的,因为它只定义了单个的 表面块,而且由于它们没有被结合在一起,所以边界面不能明 确地定义其所包围的实心部分,使设计者对物体缺乏整体的概 念。
v4
f1 e3 e 2 e1 v2
e1 e2 e3 v1 v2
(x1,y1,z1) (…) (…)
2. 多面体及欧拉( Euler )公式
组成平面多面体的基本元素是:顶点、棱边和面。
一个实体的表面必须满足闭合性,即构成实体的基本元素 之间必须满足一定的条件,其简单的检验方法就是欧拉公式。 设简单平面多面体的顶点数、 棱边数和面数分别用V 、 E 、 F来
E →{E}
F E
F
E →{F}
v
v
F
v v
F →{v}
v
E E F E E

三维模型表示方法

三维模型表示方法

三维模型是一种用于表示物体或场景的虚拟对象。

在计算机图形学中,三维模型通常由顶点、边和面组成,并且每个顶点、边和面都有其对应的坐标、法向量、颜色等属性。

三维模型表示方法包括以下几种:1. 点云表示法点云表示法是一种基于点的表示方法,它通过在三维空间中放置一系列点来表示物体的形状。

这些点可以是物体表面上的采样点,也可以是计算机生成的点。

点云表示法的优点是可以直接表示物体的形状,但缺点是不能表示物体的内部结构,也不能提供表面法向量等信息。

2. 多边形表示法多边形表示法是一种基于面的表示方法,它通过连接一系列的面来表示物体的形状。

每个面由三个或更多个顶点组成,每个顶点都有其对应的坐标和法向量。

多边形表示法的优点是可以表示物体的表面形状和法向量等信息,但缺点是不能表示物体的内部结构和曲面等复杂形状。

3. 曲面表示法曲面表示法是一种基于曲面的表示方法,它通过使用数学方程或控制点来表示物体的曲面形状。

曲面表示法可以表示各种复杂的曲面形状,包括球面、圆柱面、椭球面等,但是对于复杂的曲面形状,曲面表示法需要更多的计算资源和存储空间。

4. 体素表示法体素表示法是一种基于体素的表示方法,它通过将物体划分为一系列小的立方体单元来表示物体的形状。

每个立方体单元可以表示物体内部和外部的属性,例如密度、颜色等。

体素表示法可以表示物体的内部结构和曲面等复杂形状,但需要更多的计算资源和存储空间。

以上是常见的三维模型表示方法,不同的表示方法适用于不同的应用场景和需求。

在实际应用中,可以根据需要选择合适的表示方法,或者将不同的表示方法结合起来使用。

计算机图形学-三维对象的表示.

计算机图形学-三维对象的表示.
Байду номын сангаас
3
多面体
三维图形对象中运用边界表示的最普遍方 式是使用一组包围对象内部的表面多边形 为了用一组多边形面片描述一个对象,为 覆盖对象表面的每一个对变形给出一组顶 点。这些面片的顶点坐标和边的信息以及 每一个多边形的表面法向量等其他信息存 入一张表中
4
OpenGL多面体函数
OpenGL多边形填充函数
程序示例-3
glTranslatef(8.6,8.6,2.0); glutWireTetrahedron(); glTranslatef(-3.0,-1.0,0.0); glutWireOctahedron(); glScalef(0.8,0.8,1.0); glTranslatef(4.3,-2.0,0.5); glutWireIcosahedron(); glFlush(); } 11
1
第6章 三维对象的表示
多面体 OpenGL多面体函数 曲面 OpenGl曲面函数 分形几何方法 粒子系统
2
三维对象的表示
图形场景包含多种不同类型的对象和材质 表面 可以用多边形、二次曲面、样条曲面、实 体几何构造技术、分形结构、粒子系统等 方法来表示三维对象 实体表示方法通常分为两大类:边界表示 和空间分区表示
7
GLUT规则多面体函数
8
程序示例-1
#include <glut.h> GLsizei winWidth = 500, winHeight = 500; void init(void) { glClearColor(1.0,1.0,1.0,0.0); }
9
程序示例-2
void displayWirePolyhedra(void) { glClear(GL_COLOR_BUFFER_BIT); glColor3f(0.0,0.0,1.0);

计算机图形学07:三维几何造型

计算机图形学07:三维几何造型

F6
F4
面表 F1 F2 F3 …
边号
F1 F3
§6.1.2 形体的存储模型
3. 实体模型 Solid Model
有完整的几何信息和拓扑信息
顶点表 V1 V2 V3 …
xyzБайду номын сангаас标
边表
E1 E2 E3 …
起点 终点
面表 F1 F2 F3 …
边号
环表 F1 F2 F3 …
边号
§线框模型 Wireframe Model
(c)物体内部的 闭包
§6.1形体的定义和存储模型
点point:它是0维几何元素、分端点、交 点、切点和孤立点等。但在形体定义中一 般不允许存在孤立点。 边border:边是一维几何元素,是两个邻 面(正则形体)或多个邻面(非正则形体) 的交界。直线边由其端点(起点和终点) 定界;曲线边由一系列型值点或控制点表 示,也可用显式、隐式方程表示。
§6.1形体的定义和存储模型
环ring:
内环 外环
§6.1形体的定义和存储模型
面face:面是二维几何元素,是形体上一个 有限、非零的区域,由一个外环和若干个内 环界定其范围。一个面可以无内环,但必须 有一个且只有一个外环。面有方向性,一般 用其外法矢方向作为该面的正向。若一个面 的外法矢向外,此面为正向面;反之,为反 向面。区分正向面和反向面在面面求交、交 线分类、真实图形显示等方面都很重要。在 几何造型中常分平面、二次面、双三次参数 曲面等形式。
欧拉公式
V–E+F=2
Vertex --- 顶点 Edge --- 边 Face --- 面
§边界表示法BRep
关于边界的布尔操作
b(s) 表示实体的边界。例如A的边界记为b(A)。 A in B 表示b(A)在B中的部分。 A out B表示b(A)在B之外的部分。 (A in B)-1表示一个与A in B所含的所有面相同,而朝向相反 的面的集合。 A on B+ 表示b(A)中与b(B)相重合,并且法线方向相同的部分。 A on B- 表示b(A)中与b(B)相重合,并且法线方向与b(B)相反 的部分。

00chapter07三维物体表达及曲线曲面

00chapter07三维物体表达及曲线曲面
z
N=(1,0,0)
x
y
平面法向量也可以通过向量叉积得到。选三个顶 点V1,V2和V3,同样的从里向外以右手系逆时针 方向。形成两个向量,一个从V1到V2,另一个从 V1到V3,以叉积计算N
N=(V2-V1)×(V3-V1) 可得出平面参数A,B和C。只x2+y2+z2=r2 用参数形式来描述球面,使用经度θ和纬度 Ψ作为参数表示 x=rcosΨcosθ -π/2≤Ψ≤π/2 y=rcosΨsinθ -π≤θ≤π z=rsinΨ
Ellipsoid
椭球面可看成是球面的扩展,它在三条相 互垂直的主半径有不同的值,如图。椭球 面中心在原点的笛卡儿表示
(x/rx)2+(y/ry)2+(z/rz)2=1 用参数形式来描述椭球面,使用经度θ和纬 度Ψ作为参数表示
N=(A,B,C) z
x
y
需要区分平面的两个侧面。面向物体内部的一面 为“内侧”面,向外的面为“外侧”面。如果多 边形顶点指定为逆时针方向,则在右手系统中观 察平面的外侧时,法向量方向由里向外.
z
x y
为了决定图中阴影面的法向量分量,我们选择多 边形边界中四个顶点中的三个。沿从立方体里面 向外面的方向以逆时针方向排列三点。对这些有 序的顶点坐标,计算平面系数: A=1,B=0,C=0,D=-1。这样,该平面的法向量指向 x轴的正向
Displaying Spline Curves and Surfaces Sweep representation Constructive Solid-Geometry Methods Octrees BSP Trees
7.1 Polygon Surfaces
三维图形中运用边界表示的最普遍方式是 使用一组包围物体内部的表面多边形。很 多图形系统以一组表面多边形来存储物体 的描述。由于所有表面以线性方程加以描 述,因此会简化并加速物体的表面绘制和 显示。由于这样,多边形描述通常称为 “标准图形物体”。某些情况下,多边形 表示是唯一可用的,但很多图形包也允许 以其它方式对物体加以描述,如样条曲面, 它在转换到多边形表示后加以处理

三维实体模型的计算机表示方法

三维实体模型的计算机表示方法

一、概述三维实体模型在计算机科学和工程领域中扮演着重要角色,它们被广泛应用在计算机辅助设计(CAD)、设计和制造(DM)以及虚拟现实(VR)等领域。

如何高效准确地表示和处理三维实体模型一直是学术界和工业界关注的重点问题之一。

本文将介绍计算机中三维实体模型的表示方法,包括多边形网格、B样条曲面、体素等,并探讨它们各自的优缺点及适用范围。

二、多边形网格表示方法1. 定义多边形网格是一种由顶点、边和面组成的三维几何体表示方法。

它由一组顶点坐标和连接这些顶点的三角形或四边形面构成。

多边形网格是三维实体模型最常见的表示方法之一,被广泛应用在图形学、动画和游戏开发等领域。

2. 优点(1)灵活性强:多边形网格能够表示各种形状的三维物体,并且可以对顶点进行细粒度的编辑和操作。

(2)易于渲染:多边形网格可以直接转换为计算机图形的基本单元,易于进行光栅化和渲染。

3. 缺点(1)表面光滑性差:多边形网格无法很好地表示曲面,对于表面光滑性要求较高的物体,需要增加顶点数目来逼近真实表面。

(2)内部结构不明显:多边形网格无法直观地表示三维实体的内部结构,例如对于固体模型的空洞或内部空间无法直接表达。

4. 应用多边形网格广泛应用于三维建模和可视化领域,如CAD软件、动画制作和游戏引擎等。

三、B样条曲面表示方法1. 定义B样条曲面是一种由B样条基函数线性组合而成的曲面表示方法。

它通过对控制顶点的位置进行调整,可以灵活地描述各种曲面形状,并且具有较好的表面光滑性和局部编辑能力。

2. 优点(1)表面光滑性好:B样条曲面可以较好地逼近真实曲面,并且能够实现G1、G2连续性的表面拟合。

(2)局部控制性强:B样条曲面的控制点可实现局部编辑,对整体形状的影响较小。

3. 缺点(1)复杂性高:B样条曲面的数学原理和计算方法较为复杂,实现和计算成本较高。

(2)内部结构不明显:类似于多边形网格,B样条曲面也无法直观地表示三维实体的内部结构。

4. 应用B样条曲面广泛应用于工程设计、汽车造型和工业设计等领域,如CATIA、Pro/E等三维设计软件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.线模型 线模型表示的是物体的棱边,它全部是由点、直线或曲线组 成。 对于仅用阴影棱线就能表示形状的物体,可以采用线模型。
该模型的主要特点是结构简单,模型生成和处理容易,占用的内
存容量较小,因此成本较低。
但线模型由于仅用棱边来代表物体的形状,它只包含了三维 物体的一部分形状信息,在信息的完整性方面是不足的。因此难 以进行隐藏线消除,也不能描绘剖面图,也不可能根据它计算物 体的其它物理量(例如体积、重量等)。
3. 实体模型 实体模型是从设计到生产过程中能够连贯使用的比较理想 的模型,它与上述表面模型不同之处在于它确定了是表面的哪 一侧存在实体这个问题。 利用实体模型不仅能表示模型的颜色,而且还能进行阴影
处理,并可对主要的特征如重量、力矩等进行定量的计算。
7.2 实体的表示方法
一 . 构造实体几何表示法 (Constructive Solid Geometry) 该方法简称 CSG 方法。
H=3
C=1 G=1
24 -36 + 15 -3 = 2( 1-1 )
3. 边界表示法的数据结构
拓扑信息是边界表示法中用于表示实体边界的主要信息之一。 实体的面、边、点之间的拓扑关系有以下 9 种类型: v
v
v v
v→{v}
E v E
E
F
v →{E}
F
v F v →{F}
v
E
E →{v}
E E
E E E
2.表面模型 把线模型中棱线包围的部分定义为面,所形成的模型就是表 面模型。
采用表面模型,物体的边界确实可以全部定义,但是物体的
实心部分在边界的哪一侧是不明确的,因为它只定义了单个的 表面块,而且由于它们没有被结合在一起,所以边界面不能明 确地定义其所包围的实心部分,使设计者对物体缺乏整体的概 念。
3. CSG 表示法的数据结构
OP — code (操作码)
OP — code 0 primitive (基本体素) Right-subtree (右子树) 1 基本体素 求并
transform
(坐标变换) left-subtree (左子树)
2 求差
3 求交
CSG 表示法只定义了物体的构造方法— —隐式模型。
这些域的状态为空。 八叉树表示的特点: ① 定义形式简单。 ② 易于实现物体间的集合运算(并、交、差)。 ③ 可简化消隐算法,便于计算物体的体积、质量等。 ④ 存储量大。 改进:线性八叉树,前例可表示为 : {1,2,3,4,51,53,55,565,566},
第七章 三维形体的表示
7.1 常用的几何模型
计算机图形处理之前,首先要做的是将物体或场景模型化, 也就是通过分析研究,将三维形体模型化,形成定量的描述;再 将这些描述的信息以数字化的形式送入计算机,经过计算机处理 后显示出相应的图形。
物体或场景的模型化通常是采用几何模型的形式来表示。常
用的几何模型有以下三种:
v4
f1 e3 e 2 e1 v2
e1 e2 e3 v1 v2
(x1,y1,z1) (…) (…)
2. 多面体及欧拉( Euler )公式
组成平面多面体的基本元素是:顶点、棱边和面。
一个实体的表面必须满足闭合性,即构成实体的基本元素 之间必须满足一定的条件,其简单的检验方法就是欧拉公式。 设简单平面多面体的顶点数、 棱边数和面数分别用V 、 E 、 F来
体网格,并用这样一个立方体序列来描述实体。
2. 表示方法 z
F
F
P
F
E E
F
F E
F
E E
P F
F
E
P F
E
E E
E
E E
y
E
x
F (FULL) E (EMPTY) P (PARTIAL)
充满 无关 相交
3. 数据结构 1 2 3 4 5 6 7 8 9 10
其中:1——节点标志域 2——指向父节点的指针。若为根节点时,该域为0。 3~10——指向八个子节点的指针。若为终端节点时,
E →{E}
F E
F
E →{F}
v
v
F
v v
F →{v}
v
E E F E E
F F →{E} F
F F
F
F →{F}
三. 扫描表示法 (Sweep) 1. 基本原理
空间的点、线、面沿着某一路径扫描时,所形成的轨迹可
用来定义一个一维的、二维的或三维的物体。 在三维形体表示中,主要采用平移扫描法和旋转扫描法。 2. 平移扫描法: 将一个二维的面沿着一个指定的方向平行移动,其轨迹便
不存在悬点、悬线、悬面。

A B A∩ B
A ∩* B
若空间平面方程为: f ( x , y , z ) = 0
则可定义半空间为:{ P f ( x , y , z ) ≤ 0} 或 { P f ( x , y , z ) ≥ 0}
记为 f i
任一个凸多面体 F 都可表示为一组( n个 )半空间的交: n F=∩ fi i=1 而任一个复杂形体都可表示为多个( m个 )凸多面体的并: m F = ∪ Fj j=1
表示,则:
V-E+F=2
V=8
E = 12
F=6
对于非简单多面体则应满足广义欧拉公式: V - E + F - H = 2( C - G ) 其中 V 、E 、F 的含义与前相同;
HG 表示贯穿多面体的孔的个数。
V = 24
E = 36 F = 15
1. 基本原理
任何三维形体都可由一些基本体素通过集合运算的方法来 构造。 常用的基本体素有:长方体、圆柱体、圆锥体、圆台体、 环、球等。 采用的集合运算是:并、交、差。
-*
U*
构造结果得到一棵 表示物体的二叉树
2.正则化集合运算 采用 CSG 方法构造出来的三维形体应该是一个正则点集, 即:具有一定的形状;具有确定的封闭边界;占据有限的空间;
二. 边界表示法 ( Boundary Representation ) 1 . 基本原理 边界表示法是通过描述物体的边界来表示一个实体。
实体的边界面可以是平面多边形或曲面,通常情况下,曲
面最终都是被近似地离散成多边形来处理的。
v5
v1
四棱锥
v3 面节点 边节点 顶点节点 f1 f2 f3 …... e4 …... v3 …… 几何 信息 拓扑 信息
形成了一个三维形体。
3. 旋转扫描法:将一个二维的面绕一条母线(旋转轴)旋转, 其轨迹便形成了一个三维形体。
4. 广义扫描法:若在平移扫描的过程中可改变截面的大小
和形状,甚至改变移动的方向,便可形成复杂的三维形体。
四. 八叉树表示法 1. 基本原理 将所要表示的三维形体占据的空间分割成大小不同的立方
相关文档
最新文档