我希望根据地板的方向旋转三维点云。我检测到了地板并计算了它的法线向量。我想使用这个法线向量来确保地板上的所有点都具有相同的y值。
由于两个归一化向量的点积是它们之间角度的余弦,因此我首先归一化当前法向量(0.856,0.958,2.58)以及所需的法向量(0.0,0.958,0.0)。点积= 0.917,因此角度= 70.586,但是在3维中,这似乎没有用。我需要进行两次旋转吗?如果是这样,对最佳方法有任何建议吗?
答案 0 :(得分:0)
如果您想要一个将法线向量A
转换为所需法线向量A'
的旋转,则会有无数个。 (给定一个这样的旋转,你可以应用它,然后用A'
周围的旋转来组合它,以获得许多做同样事情的其他旋转。)
一种在3-D中运行良好的方法是计算叉积矢量V = A x A'
(与包含A
和A'
的平面垂直)然后围绕{ {1}} V
和A
之间的角度。 (首先测试A'
和A
是否已经重合,这一点非常重要。)
有关如何有效地完成所有这些工作的说明here。