假設我有一個二維旋轉矩陣旋轉:獲得從2D轉換矩陣
cos(t) -sin(t) 0
sin(t) cos(t) 0
0 0 1
你如何獲取正確的旋轉角度?
如果你在第一個元素上使用acos,你只能得到0到pi之間的值。問題是如果t
小於0(當然我不知道t;)),你會怎麼做?
假設我有一個二維旋轉矩陣旋轉:獲得從2D轉換矩陣
cos(t) -sin(t) 0
sin(t) cos(t) 0
0 0 1
你如何獲取正確的旋轉角度?
如果你在第一個元素上使用acos,你只能得到0到pi之間的值。問題是如果t
小於0(當然我不知道t;)),你會怎麼做?
函數atan2()
在大多數C語言編程語言中都採用y和x值,並計算它們之間比率的反正切值,同時考慮兩個項的符號以給出正確的全圓角。
atan2(sin(t), cos(t))
收益(大約)t
範圍(-pi,+ PI]。
有無限多的t
可以滿足整數n
的解決方案(t + 2*pi()*n
)。如果您使用acos(cos(t))
,您將得到0到pi之間的結果,但是如果您還檢查asin(sin(t))
,您將能夠確定旋轉是順時針還是逆時針旋轉。
你可以更精確的?'如果(ASIN(SIN (t))<0)那麼degree = -acos(cos(t))'? – user765269
假設t是-0.53記住cos(t)= cos(-t),所以如果你使用acos(cos ))將得到0.53,但是如果你還檢查asin(sin(t)),它將返回-0.53,負號表示旋轉的方向,如果t是0.53, )和asin(sin(t))將返回0.53。 – acs
是不是這個問題在stackexchange應該在數學網站? –