C++ の三角関数
胡金庫
2023年10月12日
この記事では、C++ で STL の三角関数を使用する方法について説明します。
C++ で std::sin
関数を使用して正弦を計算する
C++ の三角関数は、ヘッダー<cmath>
の下にあります。一般に、一般的な数学関数は C 言語から継承されていますが、それらのほとんどは C++ でオーバーロードされ、さまざまな引数タイプと相互運用できます。
この場合、std::sin
関数を表して、指定された引数の正弦を計算します。引数はラジアン単位の値である必要があり、関数が成功した場合、戻り値は [-1 ; +1]
の範囲になります。std::sin
は、値が+-0
の場合、変更されていない引数を返すことに注意してください。
次のサンプルコードは、一般的な角度の正弦値を計算します。
#include <cmath>
#include <iostream>
using std::cout;
using std::endl;
const double pi = std::acos(-1);
int main() {
cout << "sin(pi) = " << std::sin(pi) << '\n'
<< "sin(pi/6) = " << std::sin(pi / 6) << '\n'
<< "sin(pi/4) = " << std::sin(pi / 4) << '\n'
<< "sin(pi/3) = " << std::sin(pi / 3) << '\n'
<< "sin(pi/2) = " << std::sin(pi / 2) << '\n'
<< "sin(+0) = " << std::sin(0.0) << '\n'
<< "sin(-0) = " << std::sin(-0.0) << '\n';
return EXIT_SUCCESS;
}
sin(pi) = 1.22465e-16
sin(pi/6) = 0.5
sin(pi/4) = 0.707107
sin(pi/3) = 0.866025
sin(pi/2) = 1
sin(+0) = 0
sin(-0) = -0
C++ で std::cos
関数を使用して余弦を計算する
std::cos
は別のコア三角関数であり、同じ引数の戻り値を除いて、std::sin
と同様の特性を持っています。すべての三角関数は角度の値を整数の浮動小数点数として受け入れることができますが、対応する結果は常に浮動小数点 1 として返されることに注意してください。
#include <iostream>
#include <cmath>
using std::cout; using std::endl;
const double pi = std::acos(-1);
int main() {
cout << "cos(pi) = " << std::cos(pi) << '\n'
<< "cos(pi/6) = " << std::cos(pi/6) << '\n'
<< "cos(pi/4) = " << std::cos(pi/4) << '\n'
<< "cos(pi/3) = " << std::cos(pi/3) << '\n'
<< "cos(pi/2) = " << std::cos(pi/2) << '\n'
<< "cos(+0) = " << std::cos(0.0) << '\n'
<< "cos(-0) = " << std::cos(-0.0) << '\n';
return EXIT_SUCCESS;
}
cos(pi) = -1
cos(pi/6) = 0.866025
cos(pi/4) = 0.707107
cos(pi/3) = 0.5
cos(pi/2) = 6.12323e-17
cos(+0) = 1
cos(-0) = 1
std::tan
関数を使用して、指定されたラジアン値のタンジェントを計算する
一方、与えられた引数のタンジェント値を計算するための std::tan
関数があります。これらの関数は浮動小数点値を返すため、いくつかの数学エラー例外が発生する可能性があります。これについては、ここで詳しく説明します。さらに、三角関数ごとにアークバージョンがあり、元の関数名に a
プレフィックスが追加されています。
#include <iostream>
#include <cmath>
using std::cout; using std::endl;
const double pi = std::acos(-1);
int main() {
cout << "tan(pi) = " << std::tan(pi) << '\n'
<< "tan(pi/6) = " << std::tan(pi/6) << '\n'
<< "tan(pi/4) = " << std::tan(pi/4) << '\n'
<< "tan(pi/3) = " << std::tan(pi/3) << '\n'
<< "tan(pi/2) = " << std::tan(pi/2) << '\n'
<< "tan(+0) = " << std::tan(0.0) << '\n'
<< "tan(-0) = " << std::tan(-0.0) << '\n';
return EXIT_SUCCESS;
}
tan(pi) = -1.22465e-16
tan(pi/6) = 0.57735
tan(pi/4) = 1
tan(pi/3) = 1.73205
tan(pi/2) = 1.63312e+16
tan(+0) = 0
tan(-0) = -0
著者: 胡金庫