給定兩個正交的單位向量A和B以及兩個不同的正交單位向量C和D,我需要3×3方向餘弦矩陣或一個將旋轉A來對齊C的C的四元數,與D對齊。3D旋轉算法需要
這些向量都是3向量(x,y,z)。
我有一個蠻力算法,但我幾乎肯定有一個更簡單的解決方案。而我的網頁搜索還沒有透露。我使用C#,但如果你有東西在C,或FORTRAN,或基本(等),我可以將其轉換。或者,我可以使用數學上寫出的術語。
應用程序正在確定航天器所需的方位,以便與其剛性連接的光學設備將正確對齊以拍攝照片。 (必須獲得光學瞄準鏡的瞄準方向和光學裝置相對於瞄準瞄準鏡的適當旋轉,因此需要一次校準兩個矢量)。該計算可以用於由實時感測數據饋送的環路中,並且蠻力解決方案太慢了。
下面是測試溶液: 如果A和B將被旋轉到 d和E正交單位矢量其也是正交單位矢量 (注意在從原來的問題變量名的改變。) 然後計算交叉乘積:C = BXA和F = EXD 然後所需的旋轉矩陣爲:Dx * Ax + Ex * Bx + Fx * Cx,Dx * Ay + Ex * By + Fx * Cy,Dx * Az + Ex * Bz + Fx * Cz, Dy * Ax + Ey * Bx + Fy * Cx,Dy * Ay + Ey * By + Fy * Cy,Dy * Az + Ey * Bz + Fy * Cz, Dz * Ax + Ez * Bx + Fz * Cx,Dz * Ay + Ez * By + Fz * Cy,Dz * Az + Ez * Bz + Fz * Cz 非常簡單,計算速度快,沒有奇點。 – 2010-08-31 15:54:13