초기 각도를 변경하는 방법은 t_cam 구조체의 alpha, beta, gamma 값을 조정하는 것입니다. 이 세 값은 각각 x축, y축, z축을 중심으로 한 회전 각도를 나타냅니다.
구체적인 변경 방법은 다음과 같습니다:
t_cam 구조체 초기화:
프로그램의 초기화 단계에서 t_cam 구조체를 생성하고 초기 각도를 설정합니다.
c
fdf->cam->alpha = 0.0; // x축 회전
fdf->cam->beta = 0.0; // y축 회전
fdf->cam->gamma = 0.0; // z축 회전
각도 변경:
사용자 입력이나 프로그램 로직에 따라 이 값들을 동적으로 변경할 수 있습니다.
c
fdf->cam->alpha += 0.1; // x축 회전 증가
fdf->cam->beta -= 0.05; // y축 회전 감소
fdf->cam->gamma += 0.02; // z축 회전 증가
각도 제한:
각도가 특정 범위를 벗어나지 않도록 제한을 둘 수 있습니다.
c
fdf->cam->alpha = fmod(fdf->cam->alpha, 2 * M_PI);
fdf->cam->beta = fmod(fdf->cam->beta, 2 * M_PI);
fdf->cam->gamma = fmod(fdf->cam->gamma, 2 * M_PI);
rotate 함수는 이러한 각도 값들을 사용하여 실제 회전을 수행합니다. 각 축에 대한 회전은 rotate_x, rotate_y, rotate_z 함수에서 이루어지며, 이 함수들은 삼각함수를 사용하여 점의 좌표를 변환합니다.
각도 변경 시 주의할 점:
각도는 라디안 단위를 사용합니다. 도(degree)를 사용하려면 변환이 필요합니다.
회전 순서가 중요합니다. x, y, z 축 순서로 회전하면 결과가 달라질 수 있습니다.
과도한 회전은 기하학적 왜곡을 일으킬 수 있으므로 적절한 범위 내에서 조절해야 합니다.
이러한 방식으로 초기 각도를 설정하고 변경함으로써, 3D 모델의 회전을 제어할 수 있습니다.
'C Language' 카테고리의 다른 글
스택 사이즈 변수 메모 (0) | 2025.01.25 |
---|---|
CodeLLDB 설치후 launch.json 파일 (0) | 2025.01.25 |
리눅스에서 마스크 0 의 의미 (0) | 2025.01.25 |
isometric vs perspective (0) | 2025.01.24 |
Bresenham 알고리즘의 기본 원리 (0) | 2025.01.24 |