Answers:
这是简单的答案。
在4D中,为了能够将它们乘以4x4矩阵,向量表示为(x,y,z,0),点表示为(x,y,z,1)。
由于4x4矩阵的第4行代表矩阵的平移,因此上述表示使点受平移影响,而矢量不受此影响。
矢量和点都受旋转,缩放等影响。
警告:
如果您期望向量具有某些属性,则需要进行更深入的讨论。例如,如果您用与变换三角形顶点相同的矩阵来变换三角形的法线,则实际上它可能不再是该三角形的法线向量。这是因为法向向量与其从其计算的顶点具有某种反比关系。
从我所学到的,因为我也是一个学生,所以你想使用矩阵,以便以相同的方式处理旋转,缩放和平移,即乘以一个矩阵(即,一个 ×矩阵)。4 × 4
请记住,如果没有这 x矩阵,则平移将通过与矢量求和来表示,而旋转和缩放则分别使用与矢量和标量因数的乘法来表示。
现在的问题是:我们如何从3D坐标系传递到4D坐标系?答案是“ 同质坐标 ”。
那么,这是什么意思呢?我们构造矩阵来表示旋转,缩放和平移,因此我们仅使用矩阵乘法来表示变换(例如,旋转,缩放等)。我们是如何单独构建它们的,更具体些,但是您可以在网络上查看它。
在这一点上,我们有矩阵和3D向量,这还没有用,因为您不能将矩阵和向量相乘,因为尺寸不匹配。这就是为什么当我们使用原始坐标时,我们还需要将给定的3D点转换为相应的4D点。3 d
我们该怎么做呢?
我们区分方向和位置向量。顾名思义,方向向量具有指向的方向。我们也关心它们的长度,但是它们不受翻译的影响,因为我们不在乎它们的位置。位置向量(或简称为“点”)可以平移或移动。它们通常相对于原点表示,即作为从原点到点本身的向量。
我们通过添加作为对应的齐次矢量的第个坐标来变换3D方向矢量:我们添加一个0,因为这基本上消除了平移的影响。我们对位置矢量进行了类似的操作,但是由于相反的原因,我们添加了而不是。4 0 1
例如,如果我们有一个方向矢量,则可以通过执行。同样,如果我们有一个点矢量我们会将其转换为v = (v 1 v 2 v 3) v ' = (v 1 v 2 v 3 0) u = (u 1 u 2 u 3) u ' = (u 1 u 2 u 3 1)
注意:要从齐次坐标转换回对应的坐标,您不能简单地删除第坐标,除非它仍然等于(或分别为)。4 吨ħ 1 0
如果您要查找向量和点的定义,则向量为:
量,例如速度,完全由大小和方向指定。 http://www.thefreedictionary.com/vector
重点是:
一个无量纲的几何对象,除了位置外没有其他属性。 http://www.thefreedictionary.com/point
因此,您可以说向量是带比例的方向,而点是位置。
因此,如果变换向量,则只需旋转和缩放即可。使用点也可以平移它(点的旋转和缩放围绕原点进行,因为它只是点本身无法旋转的位置)。
大多数情况下,矢量和点被放置在同一容器中,该容器具有4个分量。唯一的区别是w分量。如果w分量为0,则为方向。如果为1,则向量为点。
可以在矩阵本身中找到原因。它利用将4个分量与4x4矩阵相乘的向量相乘的方式。如果您不知道它是如何工作的,我建议您快速浏览一下。
大多数情况下,您使用4x4矩阵。正常的转换矩阵可能看起来像这样: (旋转和比例尺放在您可以说的3x3区域中,因此,仅用于旋转和缩放,也可以使用3x3矩阵,但是当进行平移时,我们需要第4列。)
如您所见,如果最后一个分量为0,则您将与0相乘,因此结果为0,并且没有转换。
这使得在带有多边形对象的计算机图形中变得容易。您可以使用相同的变换矩阵来变换位置,但也可以变换法线。因为法线的w分量设置为0,而位置的w分量为1,所以法线只是旋转(并缩放),这会导致一些奇怪的事情,因此在大多数情况下,法线在之后进行归一化。实际上,由于奇怪的东西,实际上建议使用相同的矩阵进行位置和旋转!请看@JarkkoL的注释。)然后转换位置(并围绕原点旋转和缩放比例)。
希望我没有记错:P,这对您有所帮助!