在 3D 空间中,我理解 - 至少在概念上 - 如何使用矩阵变换来移动一个点。
但是,如果我有一个形状 - 假设一个立方体 - 具有多个点(顶点),我是否需要通过矩阵转换运行每个点,或者是否有更快的方法一次完成所有点?
对于单个顶点,你有
b=Aa
其中a=(x,y,z)
是点坐标的列,b
包含转换后的点的坐标。 A
是您的3x3
转换矩阵。
如果您使用具有快速矩阵乘法的编程语言,则可以编写
XP=A X
其中,X
的每一列包含立方体每个顶点的坐标(x,y,z)
,XP
列包含每个顶点的转换坐标。
这要求您在矩阵中堆叠X
顶点,但通常比循环每个顶点更快。
编辑:
如果要在系列中一个接一个地应用多个转换,例如其中的 3 个转换,请选择A=A3 A2 A1
,A1
要应用的第一个转换,A2
第二个转换,A3
第三个转换。