「C++/Tips/直交座標から角度を求める」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
直交座標 (x, y)から角度θを求める。
arctan( y / x )
の式で求めることができるが、ヘッダ<cmath>に含まれる関数tan()の戻り値は[-π/2 ~ +π/2]となっており、
180度周期であるため、360度周期の角度を求めることができない。
そのため、atan2()を使用する。
<cmath>ヘッダをインクルードし、
atan2( y, x );
のように使う。戻り値は[-π ~ +π]である。
ラジアンから度数法に直すときは、
double angle = ( atan2( y, x ) * 180/PI + 360 ) % 360;
とすることで、[0 ~ 359]の値が得られる。
直交座標 (x, y)から角度θを求める。
arctan( y / x )
の式で求めることができるが、ヘッダ<cmath>に含まれる関数tan()の戻り値は[-π/2 ~ +π/2]となっており、
180度周期であるため、360度周期の角度を求めることができない。
そのため、atan2()を使用する。
<cmath>ヘッダをインクルードし、
atan2( y, x );
のように使う。戻り値は[-π ~ +π]である。
ラジアンから度数法に直すときは、
double angle = atan2( y, x ) * 180/PI;
とすることで、[0 ~ 360]の値が得られる。
int angle = static_cast<int>( atan2( y, x ) * 180/PI + 360 ) % 360;
とすれば、[0 ~ 359]の値が得られる。