我希望根据地板的方向旋转 3-D 点云。我已经检测到地板并计算了它的法线向量。我想使用这个法线向量来确保地板上的所有点都具有相同的 y 值。
由于两个归一化向量的点积是它们之间夹角的余弦值,因此我首先对当前法向量(0.856、0.958、2.58)以及所需的法向量(0.0、0.958、0.0)进行归一化。点积 = 0.917,因此角度 = 70.586,但是在 3 维中这似乎没有用。我需要进行两次旋转吗?如果是这样,对最佳方法有什么建议吗?
我希望根据地板的方向旋转 3-D 点云。我已经检测到地板并计算了它的法线向量。我想使用这个法线向量来确保地板上的所有点都具有相同的 y 值。
由于两个归一化向量的点积是它们之间夹角的余弦值,因此我首先对当前法向量(0.856、0.958、2.58)以及所需的法向量(0.0、0.958、0.0)进行归一化。点积 = 0.917,因此角度 = 70.586,但是在 3 维中这似乎没有用。我需要进行两次旋转吗?如果是这样,对最佳方法有什么建议吗?
A
如果您想要将法线向量转换为所需法线向量的旋转,A'
则它们的数量是无限的。(给定一个这样的旋转,您可以应用它,然后通过旋转组合它A'
以获得许多其他旋转来做同样的事情。)
在 3-D 中效果很好的一种方法是计算叉积向量V = A x A'
(垂直于包含A
和的平面A'
),然后围绕和V
之间的角度旋转。(重要的是首先测试它并且还没有重合。)A
A'
A
A'
这里有一个关于如何相当有效地完成所有这些的描述。