2012-03-20 75 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