回答:
あなたは簡単な数学を使用してそれを行うことができます:
X := originX + cos(angle)*radius;
Y := originY + sin(angle)*radius;
(originX、originY)は円の中心です。 radiusはその半径です。それでおしまい。
これは、正弦と余弦が数学的に単位円に関連しているため機能します。
画像クレジット:LucasVB(所有作品)[パブリックドメイン]、ウィキメディアコモンズ経由。(70%に縮小されました。)
Kromでマークされたパラメトリック方程式を使用できます。この式を使用した理由を理解するには、方程式が何であるかを理解する必要があります。この方程式は、円のパラメトリック方程式から導出されます。
下の図に示すように、円の中心が原点(O)で描かれていることを考慮
円の円周上の点「p」を取り、半径rを持つ場合。
OP(Origin to p)によって作られる角度をθとします。x軸からのpの距離をyとし、y軸からのpの距離をxとします
上記の仮定を使用して、次のように三角形を取得します。
今、私たちが知っているのcosθ=ベース/斜辺と罪θ=垂直/斜辺
これは私たちが与えるCOSθ= X / Rと罪θ= Y / Rを
:: x = r * cosθおよびy = r * sinθ
しかし、円が原点ではなく(a、b)にある場合、円の中心はシフトしていると言えます
a x軸の
単位b y軸の単位
したがって、このような円では、x軸とy軸にシフトを追加することにより、パラメトリック方程式を次の方程式で変更できます
。x = a +(r * cosθ)
y = b + (r * sinθ)
ここで、a&bは円の中心のx、y座標です。
したがって、半径rの円周上の点の座標xとyが見つかりました
別のトリックがあります。sin(x + a)とcos(x + a)の式を使用して、sin(a)とcos(a)を計算できます。これは、移動する角度です。現在の位置から-一度だけ、各ステップで単純に乗算と加算を行います。
sin(x + a)= sin(x)* cos(a)+ cos(x)* sin(a)、iirc
もちろん、一定の角速度を想定しています。
ただし、算術精度に制限があることに注意してください。私は過去に、時間の経過とともに時々切り捨てが繰り返された結果としてらせんを描くように実装された「円形」モーションを観察しました。各回転後に位置を(x0、y0)にリセットする必要がある場合があります。