最初の画像では、上向きの2つの三角形が表示されます。どのくらい度で私はそれらを回転させなければならないので、彼らはお互いを指し示すでしょうか?どのように角度を計算できますか?2つのオブジェクトをどのように回転させると、それらは2D平面内で互いにポイントしますか?
ドットプロダクトを計算すると、三角形間の角度の差のみが計算されますが、回転する値は正しくありません。
最初の画像では、上向きの2つの三角形が表示されます。どのくらい度で私はそれらを回転させなければならないので、彼らはお互いを指し示すでしょうか?どのように角度を計算できますか?2つのオブジェクトをどのように回転させると、それらは2D平面内で互いにポイントしますか?
ドットプロダクトを計算すると、三角形間の角度の差のみが計算されますが、回転する値は正しくありません。
あなたは間違ったベクトルの内積を取っています。それぞれのオブジェクトの方向を、の変位ベクトルを使って他のオブジェクトに点在させる必要があります。これにより、必要な角度が回転します。 しかし、これだけでは不十分です - の方向が時計回りまたは反時計回りに回転することをどのように知っていますか?あなたは、クロス積を使用してこれを取得することができる:
A x B = A.x * B.y - B.x * A.y
この量が負の場合、A
はB
に反時計回りの相対的であり、およびその逆。したがって、cross(direction, displacement)
が負の場合、計算された角度θ
で時計回りに回転し、逆も同様です。
この質問は、プログラミングについてではなく、数学についてです。 – Eduardo
エドゥアルド、別の場所に投稿する必要がありますか? – sergey136
質問は基本的な三角法です。お試しくださいhttps://math.stackexchange.com/ – Eduardo