应用于3D点的2D旋转矩阵

时间:2015-12-18 10:56:55

标签: 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

1 个答案:

答案 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分量)。