2016-03-12 33 views
-2

我正在開發一個嵌入式系統,它的任務是一個有趣的問題。它知道球體上三個點的初始位置。球體旋轉後,它知道這些點已經改變的距離。這應該可以解決兩個解決方案,我有一個方法來消除其中的一個。由此我一直負責解決球體的當前取向。解決旋轉角度關於任意軸

我已經做了足夠的分析,知道理論上有可能解決這個問題,但我不知道是否有一個確定的方法來做到這一點。

+1

http://math.stackexchange.com/你應該問我在那裏。 – Rames

回答

0

您可以解決形式(軸,角度)的旋轉。旋轉點p,將其分割成

p|| = axis·(axis·p) 
p⊥ = p-p|| 

並且僅在其平面中旋轉p⊥。使用餘弦定理,你可以得到P之間的距離,p.rotated作爲

distance^2 =|p⊥|^2 * 2(1-cos(angle)) 
where |p⊥| = |axis x p| 

這給你3個,涉及axis.x,axis.y,axis.z和1-COS多項式方程(角)(請注意,您不必明確求出角度)。由於軸的長度必須1,你需要另一個方程

axis.x^2 + axis.y^2 + axis.z^2 = 1 

我不能完全知道它是可以解決的分析(因爲多項式只分析解到4級)。你可以將它插入Wolfram Alpha並檢查。