点云-基于法线向量旋转点云



我想根据地板的方向旋转三维点云。我已经检测到地板并计算出它的法向量。我想使用这个法向量来确保地板上的所有点都具有相同的y值。

由于两个归一化向量的点积是它们之间角度的余弦,我首先归一化当前法向向量(0.856、0.958、2.58)以及所需的法向矢量(0.0、0.958和0.0)。点积=0.917,因此角度=70.586,但在三维中,这似乎没有用。我需要做两次旋转吗?如果是,有没有关于最佳方法的建议?

如果您想要一个将法向量A转换为所需法向量A'的旋转,那么它们的数量是无限的。(给定一个这样的旋转,你可以应用它,然后用围绕A'的旋转来合成它,以获得许多其他做同样事情的旋转。)

一种在三维中很好地工作的方法是计算叉积向量V = A x A'(其垂直于包含AA'的平面),然后围绕V旋转AA'之间的角度。(首先测试AA'尚未重合是很重要的。)

这里有一个关于如何相当有效地完成这一切的描述。

最新更新