C++의 삼각 함수
이 기사에서는 C++에서 STL의 삼각 함수를 사용하는 방법을 설명합니다.
std::sin
함수를 사용하여 C++에서 사인 계산
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
std::cos
함수를 사용하여 C++에서 코사인 계산
std::cos
는 또 다른 핵심 삼각 함수로, 동일한 인수에 대해 반환된 값을 제외하고 std::sin
과 유사한 특성을 가지고 있습니다. 모든 삼각 함수는 angle 값을 정수의 부동 소수점 수로 받아들일 수 있지만 해당 결과는 항상 부동 소수점으로 반환됩니다.
#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
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook