6

JavaScript でこれに苦労していますが、この問題は他の多くの言語/環境にも当てはまります。

あるオブジェクトを別のオブジェクトの位置に向かって回転させたいので、次を使用します。

atan2(obj1.dy, obj1.dx) - obj2.getRotation()

2 番目のオブジェクトが特定の時間に時計回りまたは反時計回りに回転するかどうかを確認します。

私が使用している JS/HTML5/Canvas プログラミング環境である KineticJS では、角度は正の Y 軸から時計回りに 0 から 2 pi のラジアンで指定されます。この動作は、他の多くのプログラミング環境でも見られます。

ただし、Math.atan2(y,x)関数を使用して 2 番目のオブジェクトから移動角度を計算する場合、角度は -pi から pi まで、正の X 軸から開始して反時計回りに指定されます。

明確にするために:

通常のラジアンと atan2() の違い

質問:

atan2() 関数の結果から通常のラジアンで角度を計算するにはどうすればよいですか?

4

4 に答える 4

2

角度を y 軸の 0 から時計回りに増加させる場合は、角度を atan2(x,y) として計算します。ただし、これは x<0 に対して負の角度を与えるため、この場合は 2*pi を追加する必要があります。

于 2013-07-10T15:30:18.013 に答える