2012-03-20 79 views
0

我正在使用特征库来旋转平面以平行于地平面。 接地平面是用法向量(0,0,1)定义的 目标平面是一组三维点和一个正常的 旋转角度是已知的 平面的法向量以及该点上的每一点平面具有被旋转成平行于地平面找到旋转轴

我想使用仿射变换从 http://eigen.tuxfamily.org/api/TutorialGeometry.html 像这样

变换T = AngleAxisf(一,轴);在这种情况下,轴线是代表任意轴线的矩阵,旋转发生在该轴线上。 如何找到此轴?

非常感谢

回答

4

使两个平面平行可以使他们的法线并行完成,所以你只需要找到轴旋转以便使目标平面正常的。这只是垂直于您的地平面法线和您的目标平面法线的轴,可以使用交叉乘积找到。在你的情况下,如果你的目标平面的法线是[x,y,z],那么旋转轴是[y,-x,0]。

+0

怎么可能结果是一个向量,交叉乘积产生一个矩阵,对吗?它应该groundVector x targetVector或反之亦然? – 2012-03-20 14:30:59

+0

@Moataz Elmasry:两个向量的叉积,uxv是一个与u和v都垂直的向量,两个归一化向量(u.v)/(|| u |||| v ||)的点积,是u和v之间角度的余弦。 – andand 2012-03-20 14:39:38