3D 几何图元

来源:互联网 发布:js如何使用正则表达式 编辑:程序博客网 时间:2024/05/16 00:40

表示方法:

隐式表示:通过定义一个布尔函数f(x,y,z),我们能够隐式表示一个图元。如果指定的点在这个图元上,这个布尔函数就是真:对于其他的点,这个布尔函数为假。

参数形式表示:图元也能以参数形式表示。如果函数只使用一个参数,就称这些函数为单变量的。单变量的轨迹是一条曲线。有时候函数可能多于一个参数,双变量函数接受两个参数,经常设为S和T。双变量函数的轨迹是一个曲面。

“直接”形式表示:我们这组表示方法命名为“直接”法,是因为没有更好的术语来描述它们。它们随图元的类型而变化,而且经常能直接地体现图元最本质和最明显的信息。例如,用两个端点来表示一个线段。用球心和半径来表示一个球。直接形式是最便于人们直接使用的形式。

自由度:每个几何图元都有一个固有的 属性:自由度。自由度是无歧义地描述该实体所需信息量的最小数目。有趣的是,同一几何图元,不同表示方法所用到的自由度是不同的。然而,我们会发现“多余”的自由度数最经常是由于图元参数化中的冗余造成的,这些冗余可以通过一些适当的假设条件来消除,如假设向量为单位长度。

直线和射线

直线向两个方向无限延伸

线段是直线的有限部分,有两个端点

射线是直线的“一半”,有一个起点并向一个方向无限延伸

射线是有向线段

球和圆:球市一种3D物体,定义为到给定点的距离为给定长度的所有点的集合。球面上某点到球心的距离称作半径。球的直接表示形式能描述出球心C和半径R。

矩形边界框:另一种常见的用来界定物体的几何图元是矩形边界框,。矩形边界框可以是轴对齐的或是任意方向的。轴对齐矩形边界框有一个限制,就是它的边必须垂直于坐标轴。缩写AABB 常用来表示方向矩形边界框。一个3D 的AABB就是一个简单的六面体,每一边都平行于一个坐标平面。矩形边界框不一定都是立方体,它的长、宽、高可以彼此不同。

AABB与边界球:很多情况下,AABB比边界球更适合做定界体。

    计算一个点集的AABB,在编程上更容易实现,并能再较短的时间内完成。计算边界球则困难得多。

     对实际世界里的许多物体,AABB提供了一种"更紧凑“的边界。当然,对于某些物体,边界球更好(设想一个本身就是球形的物体!)。在极端的情况下,AABB的体积可能仅相当于边界球体积二分之一。大部分时候边界球的体积会比矩形边界框的体积大得多。。

三角形特殊点:

重心

外心

内心

多边形:

简单多边形与复杂多边形

自由交多边形

凸多边形与凹多边形



原创粉丝点击