天行健 君子当自强而不息

3D几何图元

3D几何图元(7)      摘要: 一般来说,多边形是由顶点和边构成的平面物体。

简单多边形不包含"洞",复杂多边形可能包含"洞"(图12.26)。简单多边形可以通过沿多边形列出的所有顶点来描述(左手坐标系中,通常以从多边形正面看时的顺时针方向列出所有点)。简单多边形的使用频率比复杂多边形高得多。  
 
3D几何图元(6)      摘要: 虽然我们经常在3D中使用三角形,但三角形的表面是一个平面,它天生是一个2D物体。在3D中任意朝向的三角形表面上移动是一件令人烦恼的事,最好是有一个坐标空间与三角形表面相关联且独立于三角形所在的3D坐标空间,重心坐标空间正是这样的坐标空间。

三角形所在平面的任意点都能表示为顶点的加权平均值,这个权就称作重心坐标,从重心坐标(b1,b2,b3)到标准3D坐标的转换为:

(b1,b2,b3) <==> b1v1 + b2v2 + b3v3

公式12.21 从重心坐标中计算3D点坐标  
 
3D几何图元(5)      摘要: 三角形在建模和图形学中有着极其重要的位置。复杂3D物体的表面,如车或人体,都是用三角形模拟的,像这样一组相连的三角形称作三角网格。

三角形是通过列出它的三个顶点来定义的。这些点的顺序是非常重要的,在左手坐标系中,当从三角形"正面"看时,经常以顺时针方向列出这些点,设这三个顶点为v1、v2、v3。三角形位于一个平面中,这个平面的方程(法向量n和到原点的距离d)在很多应用中非常重要。  
 
3D几何图元(4)      摘要: 在3D中,平面是到两个点的距离相等的点的集合。平面完全是平的,没有厚度,且无限延伸。

可以用类似于定义直线的方法来定义平面,平面的隐式定义由所有满足平面方程的点p=(x, y, z)给出,平面方程的两种记法如公式12.11所示:

ax + by + cz = d

p . n = d

公式12.11 平面方程  
 
3D几何图元(3)      摘要: 另一种常见的用来界定物体的几何图元是矩形边界框,矩形边界框可以是与轴对齐的或是任意方向的。轴对齐矩形边界框有一个限制,就是它的边必须垂直于坐标轴。缩写AABB常用来表示axially aligned bounding box(轴对齐矩形边界框),OBB用来表示oriented bounding box(方向矩形边界框)。轴对齐矩形边界框不仅容易创建,而且易于使用。

一个3D的AABB就是一个简单的六面体,每一边都平行于一个坐标平面。矩形边界框不一定是立方体,它的长、宽、高可以彼此不同。在图12.10中,画出了一些简单的3D物体和它们的AABB。  
 
3D几何图元(2)      摘要: 2D中,可以使用公式12.3隐式表示直线:

ax + by = d

公式12.3 2D直线的隐式定义

另一种表示方法为,设向量n = [a, b],用向量记法将公式12.3写为公式12.4的形式:

p . n = d

公式12.4 用向量记法的2D直线的隐式定义 
 
3D几何图元(1)      摘要: 通过定义一个布尔函数f(x, y , z),我们能够隐式表示一个图元。如果所指定的点在这个图元上,这个布尔函数就为真;对于其他的点,这个布尔函数为假。例如等式:

x2+y2+z2 = 1

对中心在原点的单位球表面上的所有点为真,隐式表示法用于测试图元是否包含某点时非常有用。  

posted on 2008-02-25 17:53 lovedday 阅读(3260) 评论(0)  编辑 收藏 引用 所属分类: ■ 3D Math Basis


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


公告

导航

统计

常用链接

随笔分类(178)

3D游戏编程相关链接

搜索

最新评论