2017-07-09 4 views
-1

initial image 最初の画像では、上向きの2つの三角形が表示されます。どのくらい度で私はそれらを回転させなければならないので、彼らはお互いを指し示すでしょうか?どのように角度を計算できますか?2つのオブジェクトをどのように回転させると、それらは2D平面内で互いにポイントしますか?

ドットプロダクトを計算すると、三角形間の角度の差のみが計算されますが、回転する値は正しくありません。

enter image description here

+0

この質問は、プログラミングについてではなく、数学についてです。 – Eduardo

+0

エドゥアルド、別の場所に投稿する必要がありますか? – sergey136

+0

質問は基本的な三角法です。お試しくださいhttps://math.stackexchange.com/ – Eduardo

答えて

1

あなたは間違ったベクトルの内積を取っています。それぞれのオブジェクトの方向を、の変位ベクトルを使って他のオブジェクトに点在させる必要があります。これにより、必要な角度が回転します。 enter image description here しかし、これだけでは不十分です - の方向が時計回りまたは反時計回りに回転することをどのように知っていますか?あなたは、クロス積を使用してこれを取得することができる:

A x B = A.x * B.y - B.x * A.y

この量が負の場合、ABに反時計回りの相対的であり、およびその逆。したがって、cross(direction, displacement)が負の場合、計算された角度θで時計回りに回転し、逆も同様です。

関連する問題