円形パス内のオブジェクトの移動


26

円形のパスで1つのオブジェクト(ドット)を移動したい。これを達成するには、X座標とY座標をどのように変更すればよいですか?

回答:


54

あなたは簡単な数学を使用してそれを行うことができます:

X := originX + cos(angle)*radius;
Y := originY + sin(angle)*radius;

(originX、originY)は円の中心です。 radiusはその半径です。それでおしまい。

これは、正弦と余弦が数学的に単位円に関連しているため機能します。

relationship of sine and cosine to the unit circle
画像クレジット:LucasVB(所有作品)[パブリックドメイン]、ウィキメディアコモンズ経由。(70%に縮小されました。)


楕円形の場合はどうなりますか?すなわち、設定された半径はありません。
テスト

2
@test:楕円がXまたはY方向の場合、対応する軸位置に追加の係数を掛けることができます。詳細が必要な場合は、別の質問をする必要があります。
Kromsterによると、Monicaのサポートは

@Anko:アニメーションがそれをより良く説明するとは思わないが、それを必要とする人のために、それをさせてください。CWに変換されます。
Kromsterは、サポートモニカ

@Kromsterは、3D空間で同じ結果を達成するのはどうですか?
トマス

14

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が見つかりました


2
おかげで、この問題に対する本当に素晴らしく簡潔な答えは、親指を立てる
Ali.Ghodrat

5

別のトリックがあります。sin(x + a)とcos(x + a)の式を使用して、sin(a)とcos(a)を計算できます。これは、移動する角度です。現在の位置から-一度だけ、各ステップで単純に乗算と加算を行います。

sin(x + a)= sin(x)* cos(a)+ cos(x)* sin(a)、iirc

もちろん、一定の角速度を想定しています。

ただし、算術精度に制限があることに注意してください。私は過去に、時間の経過とともに時々切り捨てが繰り返された結果としてらせんを描くように実装された「円形」モーションを観察しました。各回転後に位置を(x0、y0)にリセットする必要がある場合があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.