我有旋转矩阵,平移向量和一组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
答案 0 :(得分:0)
如果我理解正确你在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 ]
我认为你想要的是什么。 (我不认为Stack Overflow对矩阵有任何标记,但我的表示法应该足够清楚)
您正在正确处理T
(添加零z分量)。