1

2 つの 3D ポイントがあり (ただし、z 座標は常にゼロです)、これらのポイントから作成された方向ベクトルのヨーを計算したいと考えています。私はすでにこの投稿を見つけ、それに基づいて次のコードを試しました。

double p1_x, p1_y, p2_x, p2_y;
//initialize vars...

double dx = p2_x - p1_x;
double dy = p2_y - p1_y;

double yaw = atan(dx/-dy);

ただし、このアプローチをテストすると、奇妙な結果が得られるようです。さらに、このアプローチは dy がゼロのケースを考慮していないようです。私の問題は、基礎となる数学を完全には知らないため、コードを適応させるのに苦労することです。

私の質問は次のとおりです。適切なヨーを返すために、このアプローチをどのように適応させる必要がありますか? そして、なぜそれは現在の状態で機能しないのですか?

ご協力ありがとうございます。よろしくお願いします。scr

4

1 に答える 1

8

通常、人々は使用します(ここここatan2に文書化されています)

double dx = p2_x - p1_x;
double dy = p2_y - p1_y;

double yaw = atan2(dy, dx);

このバージョンのコードは、探しているものを提供するはずです。

180 / PI度単位の値が必要な場合は、を掛けることができます。

于 2012-11-22T17:43:28.443 に答える