2010-08-05 55 views
1

如果每次繪製框架時我的X座標都會增加,那麼我可以從數學庫中採用什麼公式來使Y座標圍繞一幀一幀地畫一個圓圈,在連續移動的中心點周圍創造一個軌道物體的幻覺?在Android遊戲中動態計算圓圈的點

我已經看到它可能涉及sin或cos,但我不知道如何根據每幀調整變量。

非常感謝您的幫助

回答

1

你不能讓一個完整的圓,如果你的X座標每遞增一次,因爲有一半的X座標的時間必須遞減。

你想要的是極座標:theta角度和r半徑。你的r將保持不變,你的theta會不斷增加。然後,你的X和Y分別是:

x = r * cos(theta) 
y = r * sin(theta) 
+0

非常感謝您花時間回答我的問題。在遊戲環境中應用數學使整個話題更加有趣,他們應該在教孩子們時使用它! – ComethTheNerd 2010-08-05 17:12:41

+0

現在感謝這個公式,精美的工作。 – ComethTheNerd 2010-08-06 09:01:35

0

ox,oy是你圓的起源,以及px,py是該圓的邊緣點,與r

半徑給出:(px-ox)^2 + (py-oy)^2 = r^2定義圈

解決潘岳:

(py-oy)^2 = r^2 - (px-ox)^2

(py-oy) = sqrt(r^2 - (px-ox)^2)

py = sqrt(r^2 - (px-ox)^2) + oy < ---

所以,當你增加px與你的框架,你可以通過重新計算上述公式找到合適的py

+0

非常感謝。我認爲爲了保持遊戲儘可能流暢,我會計算每幀的點數,並將它們存儲在一個數組中,該數組只能在每個循環中遞增的索引處讀取。 若要動態計算,我將在調用surfaceChanged方法時重新計算這些值。 非常感謝您的幫助 – ComethTheNerd 2010-08-05 17:11:15