C++ STLのatan2()関数の使い方を徹底解説!構文・戻り値・サンプルコード付き
atan2()関数は、座標yとxから逆正接(アークタンジェント)を求めるための関数です。ここでいうyとxは、それぞれy座標とx座標の値を指します。atan2()はC++のSTL(標準テンプレートライブラリ)に組み込まれている関数で、<cmath>ヘッダをインクルードすることで利用できます。
通常のatan()関数と異なり、atan2()はxの符号も考慮して正しい象限の角度を返すため、実務でも広く使われています。
atan2()関数の構文
atan2(dataType var1, dataType var2)
構文を見ると分かるように、atan2()関数はfloat型、double型、long double型の2つの引数var1とvar2を受け取ります。var1がy座標、var2がx座標に対応します。
戻り値の範囲
atan2()関数が返す値は-π(パイ)からπまでの範囲内です。この値は、点(x, y)とx軸の正方向がなす角度をラジアン単位で表したものになります。
atan2()関数の使用例
C++でatan2()を使用するプログラムの例を以下に示します。
サンプルコード
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double y = 10, x = 5, ans;
ans = atan2(y,x);
cout << "atan2("<< y <<"/"<< x <<") = " << ans << endl;
return 0;
}実行結果
atan2(10/5) = 1.10715
上記のプログラムでは、まず変数yとxを初期化しています。次にatan2()を使ってyとxの逆正接を計算し、その結果を変数ansに格納します。最後にansの値を出力しています。該当するコード部分は以下の通りです。
double y = 10, x = 5, ans;
ans = atan2(y,x);
cout << "atan2("<< y <<"/"<< x <<") = " << ans << endl;結果を度数法(°)に変換して表示する方法
atan2()関数の戻り値はラジアン単位のため、必要に応じて度数法(°)に変換して表示することもできます。変換には「180 / π」を掛けます。以下にそのデモプログラムを示します。
サンプルコード
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double y = 10, x = 5, ans;
ans = atan2(y,x);
ans = ans*180/3.14159;
cout << "atan2("<< y <<"/"<< x <<") = " << ans << endl;
return 0;
}実行結果
atan2(10/5) = 63.435
上記のプログラムでは、まずatan2()を使ってyとxの逆正接を取得しています。続いて、その値に「180 / 3.14159」を掛けることでラジアンから度へ変換し、最後に結果を出力しています。該当するコード部分は以下の通りです。
double y = 10, x = 5, ans;
ans = atan2(y,x);
ans = ans*180/3.14159;
cout << "atan2("<< y <<"/"<< x <<") = " << ans << endl;まとめ
atan2()関数は、y/xの逆正接を象限情報込みで正確に求められる便利な関数です。戻り値は-π〜πのラジアン値なので、用途に応じて度数法への変換を行いましょう。幾何計算やベクトル処理など、さまざまな場面で活用できます。
-
C++ STLのcosh()関数とは?双曲線余弦の求め方をサンプルコード付きで解説
cosh()関数とは? C++のSTLに組み込まれているcosh()関数は、ラジアン単位で与えられた角度の双曲線余弦(ハイパボリック・コサイン)を計算して返す関数です。使用するには、<cmath>ヘッダーをインクルードする必要があります。 双曲線余弦は、数学的に次の式で定義されます。 cosh(x) = (e^x + e^(-x)) / 2 構文 cosh()関数の構文は以下の通りです。 cosh(var) 構文から分かるように、cosh()関数はfloat型、double型、long double型のいずれかの引数varを受け取ります。そして、その双曲線余弦を返します。なお、引
-
C++ STLのsinh()関数の使い方を徹底解説
sinh()関数とはsinh()関数は、ラジアンで指定された値の双曲線正弦(ハイパボリックサイン)を返す関数です。C++のSTL(標準テンプレートライブラリ)に組み込まれており、<cmath>ヘッダをインクルードすることで利用できます。双曲線正弦は、以下の数式で定義されます。sinh(x) = (e^x − e^−x) / 2sinh()関数の構文sinh()関数の構文は以下のとおりです。sinh(var)構文からわかるように、sinh()関数はfloat型、double型、long double型のいずれかのパラメータvarを受け取ります。戻り値は、varの双曲線正弦です。sin