Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Math 应用于三维点的二维旋转矩阵_Math_Matrix - Fatal编程技术网

Math 应用于三维点的二维旋转矩阵

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上有一个仿射变换,你想把它提

我有旋转矩阵、平移向量和一组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上有一个仿射变换,你想把它提升到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分量)