中心円の周りの固定ノルムのベクトルでポイントを移動する必要があります。 これを行うには、私のポイントに適用する円の接線ベクトルを計算する必要があります。ここ円に接するベクトルを見つける
だからP1の座標、円の半径と中心とベクトルノルムdを知っています。私はp2(=ベクトルvの向きを見つける)を見つける必要があります。
私はそれを見つける必要があるいくつかのアイデアをグラフに載せました:p1 'は円に投影されます。そして、tはp1 'のCに対する接ベクトルです。
これは簡単ですが、これを実装する方法を理解するには数学的に弱すぎます。だから、私はこの実装のアイデアが欲しいです(言語には無関心です、javascriptはクールです)。
これで時計回りと反時計回りの動きを実装する方法を教えてください。
編集:この
let vx = cx - p1x,
vy = cy - p1y,
norm = Math.sqrt((vx * vx) + (vy * vy)),
p2x = p1x - (vy * d/norm),
p2y = p1y + (vx * d/norm);
を取得しかし、癖がまだある:時間でこれを使用して、ポイントは、ゆっくりとスパイラルを行って、円の中心から離れつつあります。
ありがとうございます。 P1X、 VY = CY - - P1Y、 規範= Math.sqrt((VX * VX)+(VYの*のVY))、 P2X = P1X '' 'VX = CXを聞かせて:あなたの兆候を以下の私はこれを得ました(vx * d/norm); '' ' しかし、それでも動作しません。 p2の値は期待通りではありません。私のコードに何か問題がありますか? – Cobaltway
私は垂直ベクトルが、あなたが言ったように値をスワップするだけでなく、符号の1つを反転することによっても得られることを理解しました。私はあなたがそれを編集すればあなたの答えを受け入れることがうれしいです。 – Cobaltway
ところで、私の質問に追加したアルゴリズムでは、ポイントがゆっくりと中心から離れ、スパイラルを実行するのは普通ですか? – Cobaltway