Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在 3D 空间中,我至少在概念上理解如何使用矩阵变换来移动一个点。
但是,如果我有一个带有多个点(顶点)的形状(比如说一个立方体),我是否需要通过矩阵变换运行每个点,或者是否有更快的方法一次完成所有这些?
对于单个顶点,您有
b=Aa
其中a=(x,y,z)是点坐标的列,b包含变换点的坐标。A是你的3x3变换矩阵。
a=(x,y,z)
b
A
3x3
如果您使用具有快速矩阵乘法的编程语言,则可以编写
XP=A X
其中 的每一列X包含(x,y,z)立方体每个顶点的坐标,而 的列XP包含每个顶点的变换坐标。
X
(x,y,z)
XP
这需要您在矩阵中堆叠X顶点,但通常比遍历每个顶点更快。
编辑:
如果您有多个转换要一个接一个地连续应用,例如其中 3 个,请选择您要应用的第一个、A=A3 A2 A1第二个和第三个。A1A2A3
A=A3 A2 A1
A1
A2
A3