簡體   English   中英

如何讓圓圈移動?

[英]How to make a circle move in circles?

Circle c1 = new Circle(20);
c1.relocate(200,200); //Set X and Y

我想要做的是讓圓圈圍繞一個看不見的旋轉中心移動。 怎么能實現呢?

謝謝。

編輯:我的三角技能極差。

您可以使用極坐標將方程用於圓上的點:

circle_x = rot_center_x + radius * cos(angle)
circle_y = rot_center_y + radius * sin(angle)

使用此功能,您將獲得新圈子的中心點。 然后你只需要增加(逆時針)或減少(順時針)角度,空白屏幕並再次繪制圓圈。

三角函數的角度是弧度,整圓中有2 * pi弧度。 所以如果你想要角度零度,請輸入0 對於90度,放入pi/2.0 對於任何其他角度,請使用此轉換公式:

angle_rad = pi/180.0 * angle_degrees

如果你想要旋轉時間,你必須選擇旋轉歐米茄的角速度。

omega = 2*pi*f

其中f是旋轉頻率,例如f = 1Hz意味着你的物體將在一秒后旋轉整圈。 歐米茄以每秒弧度為單位,因此如果你有10兆弧度的歐米茄,那么你的物體將在一秒內旋轉10弧度,或在10秒內旋轉100弧度。

現在您必須確定添加每幀動畫所需的角度:

ang_inc = omega / fps_avg;
ang += ang_inc;

其中fps_avg是每秒幀數的平均值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM