应用于 3D 点的 2D 旋转矩阵
Posted
技术标签:
【中文标题】应用于 3D 点的 2D 旋转矩阵【英文标题】:2D rotation matrix applied on 3D points 【发布时间】:2015-12-18 10:56:54 【问题描述】:我有旋转矩阵、平移向量和一组 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】:如果我对您的理解正确,您在 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 分量)。
【讨论】:
以上是关于应用于 3D 点的 2D 旋转矩阵的主要内容,如果未能解决你的问题,请参考以下文章