関数の概要
PHPの atan2 関数は、デカルト座標平面上の原点から見た、点 (x, y) の角度(ラジアン値)を求めるために使用されます。特に、x座標とy座標の符号を考慮して正しい象限の角度を返すため、単純な逆正接の計算よりも信頼性が高い角度計算が可能です。
パラメータの説明
float $y: 点のy座標(縦方向の位置)を指定します。float $x: 点のx座標(横方向の位置)を指定します。
戻り値
関数は、点 (x, y) が作るベクトルの角度をラジアン単位で返します。戻り値の範囲は -π から π(-3.1415926535898~3.1415926535898)です。0はx軸の正方向を指し、正の値は反時計回り、負の値は時計回りの角度を表します。
使用例
基本的な使い方
<?php
$y = 1;
$x = 1;
$angle = atan2($y, $x);
echo $angle; // 約0.785398(π/4ラジアン)
?>
この例では、座標 (1,1) の角度が約0.785(45度)であることを確認できます。
負の座標の角度取得
<?php
$y = -1;
$x = -1;
$angle = atan2($y, $x);
echo $angle; // 約-2.356194(-3π/4ラジアン)
?>
負のx軸・y軸上の点の角度も正しく計算され、約-2.356(-135度)となります。
度数に変換して表示する例
<?php
$y = 0;
$x = -1;
$angle = atan2($y, $x);
$degrees = rad2deg($angle);
echo $degrees; // 180
?>
atan2関数の結果はラジアンなので、rad2deg関数を使うと度数単位に変換できます。この例では、x座標が-1、y座標が0の点の角度が180度です。
関連する関数
atan– 単純な逆正接を求める関数(y/xの値から角度を計算)rad2deg– ラジアンから度数に変換deg2rad– 度数からラジアンに変換
まとめ
PHPの atan2 関数は、x座標とy座標から正確な角度を求めるのに便利な関数です。単に逆正接を計算するのではなく、座標の象限も考慮するため、2次元ベクトルの角度判定に最適です。実務でも、位置関係の計算や回転処理など幅広い場面で活用できます。
