728x90
반응형
C언어 math.h
의 삼각 함수 정리
C언어에서는 math.h
헤더 파일을 통해 다양한 수학 함수를 제공하며, 삼각 함수도 포함됩니다. 이번 글에서는 sin
, cos
, tan
, asin
, acos
, atan
함수에 대해 설명하고 예제 코드를 제공합니다.
1. 삼각 함수란?
삼각 함수는 각도를 입력받아 삼각형의 변의 비율을 반환하는 함수입니다. 대표적인 함수는 다음과 같습니다:
sin(x)
: 주어진 각도의 사인 값을 반환cos(x)
: 주어진 각도의 코사인 값을 반환tan(x)
: 주어진 각도의 탄젠트 값을 반환asin(x)
: 사인 값에서 각도를 구함 (역함수)acos(x)
: 코사인 값에서 각도를 구함 (역함수)atan(x)
: 탄젠트 값에서 각도를 구함 (역함수)
모든 입력값과 출력값은 라디안(Radian) 단위를 사용하므로, 각도를 변환할 필요가 있습니다.
2. 기본 삼각 함수 (sin
, cos
, tan
)
sin
, cos
, tan
함수 사용법
#include <stdio.h>
#include <math.h>
#define PI 3.14159265358979323846
int main() {
double angle = 30.0; // 30도
double radian = angle * (PI / 180.0); // 도(degree)를 라디안(radian)으로 변환
printf("sin(%.2f°) = %.6f\n", angle, sin(radian));
printf("cos(%.2f°) = %.6f\n", angle, cos(radian));
printf("tan(%.2f°) = %.6f\n", angle, tan(radian));
return 0;
}
실행 결과
sin(30.00°) = 0.500000
cos(30.00°) = 0.866025
tan(30.00°) = 0.577350
3. 역삼각 함수 (asin
, acos
, atan
)
역삼각 함수는 특정 사인, 코사인, 탄젠트 값에 대한 각도를 구하는 함수입니다.
asin
, acos
, atan
함수 사용법
#include <stdio.h>
#include <math.h>
#define PI 3.14159265358979323846
int main() {
double value = 0.5;
double angle_sin = asin(value) * (180.0 / PI); // 라디안을 도(degree)로 변환
double angle_cos = acos(value) * (180.0 / PI);
double angle_tan = atan(value) * (180.0 / PI);
printf("asin(%.2f) = %.2f°\n", value, angle_sin);
printf("acos(%.2f) = %.2f°\n", value, angle_cos);
printf("atan(%.2f) = %.2f°\n", value, angle_tan);
return 0;
}
실행 결과
asin(0.50) = 30.00°
acos(0.50) = 60.00°
atan(0.50) = 26.57°
4. 주의할 점
- 각도 변환:
math.h
의 삼각 함수는 라디안 단위로 동작하므로, 변환이 필요합니다.- 도 → 라디안 변환:
radian = degree * (PI / 180.0)
- 라디안 → 도 변환:
degree = radian * (180.0 / PI)
- 도 → 라디안 변환:
- 역삼각 함수 범위:
asin(x)
,acos(x)
의 입력 범위는-1 <= x <= 1
입니다.atan(x)
는 모든 실수 값을 입력으로 받을 수 있습니다.
- 특정 값의
tan
주의:tan(x)
는cos(x) == 0
이 되는90도, 270도
에서 정의되지 않습니다. 즉,tan(PI/2)
,tan(3*PI/2)
등은 무한대 값을 반환하거나 계산 오류가 발생할 수 있습니다.
5. 삼각 함수 활용 예제: 직각삼각형에서 변의 길이 구하기
다음 예제는 삼각 함수를 이용해 직각삼각형의 높이를 계산하는 프로그램입니다.
#include <stdio.h>
#include <math.h>
#define PI 3.14159265358979323846
int main() {
double base = 10.0; // 밑변 길이
double angle = 45.0; // 각도 (degree)
double radian = angle * (PI / 180.0);
double height = base * tan(radian); // 높이 계산
printf("밑변: %.2f, 각도: %.2f°\n", base, angle);
printf("높이: %.2f\n", height);
return 0;
}
실행 결과
밑변: 10.00, 각도: 45.00°
높이: 10.00
6. 정리
math.h
의 삼각 함수는 각도를 라디안 단위로 변환하여 사용해야 합니다.sin
,cos
,tan
은 입력된 각도의 삼각비를 계산합니다.asin
,acos
,atan
은 역삼각 함수를 제공하여 삼각비로부터 각도를 계산합니다.- 삼각 함수를 활용하여 다양한 기하학적 문제를 해결할 수 있습니다.
반응형
'c 언어 > c 표준 라이브러리(Standard C Library)' 카테고리의 다른 글
C time.h 개요 및 시간 관련 함수 (0) | 2025.02.22 |
---|---|
C math.h의 절댓값 및 기타 함수 설명 (0) | 2025.02.21 |
C 표준 라이브러리 `math.h` 개요 및 기본 수학 연산 (0) | 2025.02.19 |
C 언어 `stdlib.h`의 메모리 조작 함수 완벽 정리 (0) | 2025.02.18 |
C `stdlib.h` 개요 및 동적 메모리 할당 (0) | 2025.02.17 |