3D游戏与计算机图形学中的数学方法-点线面

时间:2022-06-05 19:33:20

《易传·系辞上传》:”易有太极,是生两仪,两仪生四象,四象生八卦。”

借用一下古代先人们的智慧引一下本文的主题-三维图形中的点线面,在三维几何中也有一句话可以和上面的话相对应:由点成线,由线成面,由面成体,由体成形。

点向量和方向向量

首先我们要明确在三维空间中表示点的点向量和表示方向的方向向量的区别,例如A(x,y,z)可以表示一个点向量,而OA(x,y,z)就表示一个方向向量。方向向量在平移过程中将保持不变。

3D空间中的直线

3维空间中有两个点P1和P2,那么通过这两个点的直线可以定义为:P(t) = (1-t)P1 + tP2,其中t可以是任意实数。P1和P2之间的线段对应于t在0到1之间的值。

射线是指只有一个端点并且在给定方向V上无限延伸的直线。射线的参数方程为:P(t) = P0+tV,其中t的值大于0。

可以看出,无论是直线还是射线,都可以由一个点加上指向而构成的。

两条直线的关系

在同一平面里的两条直线,它们的关系有两种,相交或者平行。当然重合也是包含在相交里面的。

但是在三维世界里,加入了空间的概念,所以两条直线的关系又增加了一种,那就是异面。

两条直线如下所示:

P(s) = P0+sVP

Q(t)=Q0+tVQ3D游戏与计算机图形学中的数学方法-点线面

其中s和t可以是任意实数。

3D空间中的平面

对于给定的3D点P0和法向量N,那么经过P0且与N垂直的平面可以定义为满足方程N.(P-P0)=0的点的集合。如下图所示:

3D游戏与计算机图形学中的数学方法-点线面

平面方程可以表示为Ax+By+Cz+D=0 ,   其中A,B,C是法向量N的x,y,z的分量,D = -N . P0 。

平面与直线的关系

(1)直线在平面内 即直线和平面有无数个公共点。

(2)直线和平面相交 即直线和平面有且只有一个公共点(垂直也是一种相交)。

(3)直线和平面平行 即直线和平面没有公共点。

3D游戏与计算机图形学中的数学方法-点线面

平面与平面的关系

在3维空间中平面和平面之间的关系就类似于2维空间中直线和直线的关系:

(1)两个平面相交(重合是一种特殊的相交)。

(2)两个平面平行。

3D游戏与计算机图形学中的数学方法-点线面