私はプロジェクトに取り組んでいます。ここで使用されるすべての変数は double として格納されます。問題は、両方の座標を持つ 2D 速度ベクトルがあり、ベクトルと OX 軸の間の角度を計算したいので、 を使用することTheta1 = atan(v1y / v1x);
です。それでも、このアプローチでは、-PI/2 の間の角度しか取得できません。PI / 2なので、追加した範囲を拡張するために
#define PI 3.14159265358979323846
double Theta1;
Theta1 = atan(v1y / v1x);
if (v1x < 0.0)
if (v1y > 0.0)
Theta1 = Theta1 + (PI/2.0);
else
Theta1 = Theta1 - (PI/2.0);
else;
Theta1 then を使用しようとすると、最初の if 操作で変更されないようです。(+/-)PI/2.0 を追加することはありませんが、試してみると
cout << Theta + PI/2.0 << endl;
Theta1 modified を出力します。私は何を間違っていますか?落とし穴があるか、単純なものが見えないだけのようです。