【PHP8.x】atan関数の使い方

atan関数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

atan関数は、指定された数値のアークタンジェント(逆正接)を計算する関数です。アークタンジェントとは、タンジェント(正接)の値が与えられたときに、その角度を求める操作のことです。atan関数は、引数として与えられた数値に対するアークタンジェントをラジアン単位で返します。

具体的には、atan(x) は、tan(θ) = x を満たす θ を返します。返される値は -π/2 から π/2 の間のラジアン値となります。

例えば、atan(1) は π/4 (約0.785398) を返します。これは、tan(π/4) = 1 であるためです。

atan関数は、三角関数を用いる計算や、角度に関連する処理を行う際に役立ちます。例えば、ベクトルの方向を計算したり、2点間の角度を求めたりする際に利用できます。

PHPのatan関数は、C言語のatan関数を基に実装されており、高い精度で計算を行うことができます。数値計算において、角度を扱う必要がある場合に非常に有用な関数です。

atan関数を使用する際には、引数として数値を与える必要があります。数値以外を与えた場合、PHPは適切な型変換を試みますが、意図しない結果になる可能性があるため、注意が必要です。また、atan関数はラジアン単位で角度を返すため、必要に応じて rad2deg 関数を用いて度数法に変換することができます。

構文(syntax)

1atan ( float $num ): float

引数(parameters)

float $num

  • float $num: 逆正接を計算する対象の浮動小数点数

戻り値(return)

float

指定された数値の逆正接(アークタンジェント)をラジアン単位で返します。

サンプルコード

PHP atan2で角度を計算する

1<?php
2
3/**
4 * atan2 関数を使ったサンプルコード
5 *
6 * atan2(y, x) は、原点から点 (x, y) への角度をラジアンで返します。
7 */
8
9// 角度を求める点の座標
10$x = 10;
11$y = 10;
12
13// atan2 関数を使って角度を計算
14$angle = atan2($y, $x);
15
16// ラジアンを度に変換
17$angle_degrees = rad2deg($angle);
18
19// 結果を出力
20echo "点 ($x, $y) の角度: " . $angle_degrees . "度\n";
21
22// 別の例
23$x = -10;
24$y = 10;
25$angle = atan2($y, $x);
26$angle_degrees = rad2deg($angle);
27
28echo "点 ($x, $y) の角度: " . $angle_degrees . "度\n";
29
30?>

PHPのatan2関数は、X座標とY座標を持つ点と原点を結んだ線が、X軸の正の方向となす角度を計算するために使われます。この関数は、点がある象限を考慮して、より正確な角度を求められるという特徴があります。

atan2関数は、float $y(Y座標)とfloat $x(X座標)の二つの引数を受け取ります。戻り値は、その点(x, y)の角度をラジアン単位のfloat値で返します。この角度は-πからπの範囲(-180度から180度)で表現されます。

サンプルコードでは、まず点(10, 10)の角度を計算しています。atan2(10, 10)でラジアン単位の角度が求められ、$angleに格納されます。このラジアン値を度数に変換するためには、rad2deg関数を使用します。rad2deg関数は引数にラジアン値を取り、度数に変換したfloat値を返します。これにより、点(10, 10)の角度が45度と表示されます。

また、点(-10, 10)のような別の座標の例も示されており、atan2関数が座標の符号から点の位置を正しく判断し、様々な位置における角度を計算できることがわかります。

atan2関数では、第一引数にy座標、第二引数にx座標を指定します。数学の座標(x, y)の順とは逆なので注意が必要です。この関数が返す値の単位は、度数法(度)ではなく弧度法(ラジアン)です。そのため、普段私たちが使う角度として扱いたい場合は、サンプルコードのようにrad2deg関数で変換する必要があります。また、似た関数にatanがありますが、atanでは正しい象限(位置)を判断できません。座標から正確な角度を求める際は、xが0の場合も安全に処理でき、360度全方向の角度を正しく計算できるatan2関数の使用が推奨されます。

関連コンテンツ