방향키를 눌렀을 때 보는 점(시점)의 좌표를 특정 각도 만큼 회전시켜 보자.
구현하기 위해 먼저 키보드 입력 이벤트를 어떻게 처리하는지 알아보자.
클래스 위저드에서 메시지 선택을 WM_KEYDOWN을 선택하여 함수를 추가한다. 아래와 같은 함수가 추가된다.
이를 다음과 같이 방향키에서만 작동하도록 수정한다.
왼쪽키 오른쪽 키를 눌렀을 때 MIP ANY DIRECTION 함수를 호출 하게 만들어보고 잘 동작하는지 확인해보자.
Doc 에서 Renderer 클래스 포인터를 가져올 수 있는 함수를 만든다.
VolumeRendererDoc.cpp
이제 키를 누르면 시점의 좌표를 변환시켜보자. 이를 구현하기 위해
변환행렬을 이용한다.
이는 원점을 중심으로 시점의 좌표를 반시계 방향으로 a 각도만큼 이동시키는 행렬이다.
Renderer.cpp
이제 View 를 아래와 같이 다시 수정하고 실행하면 원점을 중심으로 시점이 회전하는 것을 볼 수 있다.
VolumeRendererView.cpp