3D 图象算法3D 简介我们首先从坐标系统开始。你也许知道在 2D 里我们经常使用笛卡儿坐标系统在平面上来识别点。我们使用二维(X,Y):X 表示水平轴坐标,Y 表示纵轴坐标。在 3 维坐标系,我们增加了 Z,一般用它来表示深度。所以为表示三维坐标系的一个点,我们用三个参数(X,Y,Z)。这里有不同的笛卡儿三维系统可以使用。但是它们都是左手螺旋或右手螺旋的。右手螺旋是右手手指的卷曲方向指向 Z 轴正方向,而大拇指指向 X 轴正方向。左手螺旋是左手手指的卷曲方向指向 Z 轴负方向。实际上,我们可以在任何方向上旋转这些坐标系,而且它们仍然保持本身的特性。在计算机图形学,常用坐标系为左手坐标系(手背向上),所以我们也使用它。:X 正轴朝右Y 正轴向上Z 正轴指向屏幕里矢量什么是矢量?几句话,它是坐标集合。首先我们从二维矢量开始,(X,Y):例如矢量 P(4,5)(一般,我们用->表示矢量)。我们认为矢量 P 代表点(4,5),它是从原点指向(4,5)的有方向和长度的箭头。我们谈论矢量的长度指从原点到该点的距离。二维距离计算公式是| P | = sqrt( x^2 + y^2 )这里有一个有趣的事实:在 1D(点在单一的坐标轴上),平方根为它的绝对值。让我们讨论三维矢量:例如P(4, -5, 9),它的长度为| P | = sqrt( x^2 + y^2 + z^2 )它代表在笛卡儿 3D 空间的一个点。或从原点到该点的一个箭头代表该矢量。在有关操作一节里,我们讨论更多的知识。矩阵开始,我们从简单的开始:我们使用二维矩阵 4 乘 4 矩阵,为什么是 4 乘 4?因为我们在三维坐标系里而且我们需要附加的行和列来完成计算工作(本质原因:在计算机图形学里应用的图形变换,实际上是在仿射空间而不是向量空间中进行的)。在二维坐标系我们需要 3 乘 3 矩阵。着意味着我们在 3D 中有 4 个水平参数和 4 个垂直参数,一共 16 个。例如:4x4 单位矩阵| 1 0 0 0 || 0 1 0 0 || 0 0 1 0 || 0 0 0 1 |因为任何其它矩阵与之相乘都不改变,所以称之为单位阵。又例如有矩阵如下:| 10-7 22 45 || sin(a) cos(a) 34 32 || -3528 176 || 45-99 32 16 |有关矢量和矩阵的操作我们已经介绍了一些非常简单的基本概念,那么上面的知识与三维图形有什么关系呢?本节我们介绍3D 变换的基本知识和其它的一些概念。它仍然是数学知识。我们要讨论有关矢量和矩阵操作。让我们从两个矢量和开始:( x1 , y1 , z1 ) ...