변환 행렬 초기화
OpenGL에서는 아래와 같은 변환을 위해 변환행렬을 사용합니다. 만일 이전에 사용한 병환 행렬을 초기화하지 않으면 원하는 결과가 나오지 않을 수 있습니다. 아래 함수 호출을 통해 변환 행렬을 항등 행렬로 초기화합니다.
glLoadIdentity();
회전 (Rotation)
기존 위치 기준 0.0 이 아닌 축을 기준으로 주어진 각도만큼 회전합니다. 일반적으로 z축을 기준으로 회전시킵니다.
glRotatef(각도, x, y, z);
이동 (Translation)
기존 위치 기준 (일반적으로 중심점)에서 각 좌표계에서 입력한 파라미터 만큼 입력합니다.
glTranslatef(x, y, z)
크기 조정 (Scaling)
해당 좌표계의 값이 1.0이 아니면 지정한 비율만큼 확장, 축소합니다.
glScalef(x, y, z);
적용은 역순으로
위 세 가지 함수를 혼용하여 다양한 도형을 그릴 수 있습니다. 이 때 주의해야 하는 점은, 함수의 실행 순서는 역순입니다. 변환행렬을 활용하여 행렬 연산을 하기 때문에 코드 작성의 역순으로 실행됩니다.
정리
- glLoadIdentity();
- glRoatef glTranslatef glScalef
- 함수 실행 순서는 역순
'소프트웨어 & 클라우드' 카테고리의 다른 글
[OpenGL] Mac M1 실리콘 환경에서 xcode glfw 활용해서 사용하기 (2) | 2023.05.13 |
---|---|
[OpenCV] Mac M1 실리콘 환경에 설치하기 (0) | 2023.05.12 |
[OpenGL] 삼각형 그리기 (0) | 2023.04.24 |
[GitHub] 내가 속한 그룹 내 프로필에 노출하기 (0) | 2023.04.12 |
[ASTx] AhnLab Safe Transaction for Mac 강제종료 (0) | 2023.02.18 |