2014-11-06 559 views
0

我有一個物體,當它旋轉時,從0度開始指向水平右側,然後向左旋轉至+270度,然後變爲-90度,然後回到零以完成360度旋轉。 (我認爲這只是spritekit的工作原理?)使用旋轉角度進行計算當270度變爲-90度時如何計算它們?

我該如何設置這樣才能正確地對這些角度進行數學計算? 例如,我有兩個對象,我試圖計算彼此之間的度數差異,並設置角度上的最小和最大差異,但如果一個對象翻轉-90,則不會無法鍛鍊相差5度等於265度? 我需要使用/在這裏做些什麼來成功計算270考慮到-90等變化?

我想我問我如何讓我的計算開始和0並轉到360,而不是270到-90到0?

而且我的計算正在以弧度做,但我只是用度顯示的標籤,這樣我可以看到它等

任何幫助將是巨大的

回答

0

摘要:這是一個模數式操作,但模數僅適用於整數,並且角度可能有小數部分,所以會存在類型轉換和繁瑣的細節來存儲/恢復任何十進制分量到結果中。

so .. 手動執行模數。 。

CGFloat myAngle = //however you calculate that.. 



while (myAngle < 0.0){ 
    myAngle += 360.0; 
    } 
while (myAngle > 360.0){ 
    myAngle -= 360.0; 
    } 

,如果由於某種原因,你需要把它收回,只是改變了這些值,以反映範圍:

while (myAngle < -90.0){ 
    myAngle += 360.0; 
    } 

while (myAngle > 270.0){ 
    myAngle -= 360.0; 
    } 
+0

喜傑夫感謝您的答覆我的對象的角度通過 由 _myobjectangle = myobject.zRotation + M_PI_2; 它是一個浮點數 如何在那裏實現你的代碼?我試過它,因爲你有它實際意味着做什麼?,你的代碼不會調整我從我的系統得到的值嗎?,但將允許我做從0到360的計算是目標它還是?對不起,我不知道任何關於模數等 – TF35Lightning 2014-11-06 02:57:52

+0

上面的代碼片段可以讓你閱讀和比較結果,無論你現在得到的是0-360,結果是從-90到> 270的範圍。我不想冒犯,但這是C的基本原理。仔細看看並仔細考慮。如果你想編寫代碼,你需要能夠理解這樣的事情。另外,你想嘗試以弧度工作,我知道它們起初看起來很嚇人,但它很容易,pi(由常數M_PI尋址)= 180。2 * Pi = 360 ..所以90 = pi/2.0祝你好運:) – Jef 2014-11-06 09:39:09

+0

謝謝傑夫是啊,你的最後一篇文章使它更清晰我只是新手C /編程總的來說,我明白什麼是你的代碼鑼現在,它只是讓我的頭周圍如何工作到我有/試圖難道這就是我猜想的難題嗎?我將弧度轉換爲度數並沒有什麼問題。 – TF35Lightning 2014-11-06 10:01:59