Math 应用于三维点的二维旋转矩阵
我有旋转矩阵、平移向量和一组3D分类点(分类取决于z坐标)。 一个2x2旋转矩阵M和一个2x1平移向量T与一个类别相关 如何在坐标(x、y、z)的每个点上应用旋转和平移矩阵? 这是简单的还是我误解了旋转矩阵的原理Math 应用于三维点的二维旋转矩阵,math,matrix,Math,Matrix,我有旋转矩阵、平移向量和一组3D分类点(分类取决于z坐标)。 一个2x2旋转矩阵M和一个2x1平移向量T与一个类别相关 如何在坐标(x、y、z)的每个点上应用旋转和平移矩阵? 这是简单的还是我误解了旋转矩阵的原理 add to M a column and a line of 0 add to T a 0 for the z-transformation then : (x, y, z) = M * (xp, yp, zp) + T 如果我理解正确的话,你在R^2上有一个仿射变换,你想把它提
add to M a column and a line of 0
add to T a 0 for the z-transformation
then : (x, y, z) = M * (xp, yp, zp) + T
如果我理解正确的话,你在R^2上有一个仿射变换,你想把它提升到R^3上的仿射变换,这样当你把它应用到
(x,y,z)
上时,效果就是把原始变换应用到(x,y)
,并保持z
不变
如果是这样,你必须更仔细地修改你的矩阵
如果你的原始矩阵是
M = [a b]
[c d]
那么你的新矩阵应该是
M' = [a b 0]
[c d 0]
[0 0 1]
注意右下角的1——它是您描述的方法中缺少的成分。请注意,添加的行和列是3x3标识矩阵的第三行和第三列,这很有意义,因为您希望结果与z
上的标识矩阵类似。这很容易算出
[a b 0] [x] [ax+by]
[c d 0] [y] = [cx+dy]
[0 0 1] [z] [ z ]
这就是我认为你想要的。(我不认为堆栈溢出对矩阵有任何影响,但我的符号应该足够清晰)
您正在正确处理T
(添加零z分量)