2012-12-12 40 views
0

我太愚蠢解決基本的代數,將是冷靜,如果你能幫助我走出這個基本的數學旋轉,錯誤的結果

通常我得到了旋轉並嘗試獲取位置我想旋轉的對象到

var rads : Number = rotation/180 * Math.PI; 
position.x = Math.cos(rads); 
position.y = Math.sin(rads); 

這個時候,我得到了那個職位,但我想要得到的旋轉,但我想一切都是假的,在此先感謝您的幫助

編輯:對於那些誰得到了同樣的問題,使用ActionScript 3(或任何也有這個功能的)實驗機智h Math.atan2()它可以爲您節省很多麻煩 - 更快,更容易

回答

1

大多數語言都提供了一個叫做atan2()的功能,它可以提升和運行,併爲您完成所有繁重工作,在所有四個象限中給出正確答案

>>> math.atan2(-1, 1) 
-0.7853981633974483 
>>> math.atan2(-1, 1) * 180/math.pi 
-45.0 
+0

jeah我剛剛也發現了這個。作品完全感謝很多,第一個答案也應該工作,雖然如果語言不支持atan2() – tschery

+0

事情是,大多數非玩具語言(和不少玩具語言)都支持它。 –

+0

哈哈好吧不是很習慣很多語言,它對我來說工作很好雖然(使用as3) – tschery

1

我認爲你問的是如何獲得正x軸和線段之間的角度從原點到( X,Y)。我假定x和y是正數,因爲這簡化了討論,如果不是,可以使它們爲正數,然後在相應的軸上反射該角度。

x/Math.sqrt(x*x + y*y)可以得到角度的餘弦。然後,Math.Acos將以弧度計算arccos(這是您要查找的角度的值)。

+0

jeah你是對的我不知道如何要求。 X和Y不是正的,所以如何反映適當軸上的角度?謝謝alot =) – tschery

+0

如果X是負數,乘以-1,然後進行上面的計算,然後從Math.PI中減去結果。如果Y是負數,則將其乘以-1,然後進行上面的計算,然後從2 * Math.PI中減去結果。如果X和Y都是負數,則乘以-1,然後進行上面的計算,然後將結果添加到Math.PI. (我不得不快速寫這篇文章,但我認爲這應該有效。) – David

+0

非常感謝你解釋了一切,並且它應該可以正常工作,現在就試試吧 – tschery