카메라가 원점에서 radius만큼 떨어져 있을때 원점을 중심으로 Y축 방향으로 회전한다고 하면..
뷰 행렬 위치 설정할때
static float angleY = 3.0f * D3DX_PI / 2.0f;
D3DXVECTOR3 position( cosf( angle ) *radius, 0.0f, sinf( angle ) *radius );
뭐 일케 해주면 될겁니다.
근데 문제는 Y축만 아니라 X축으로도 회전한다고 하면???
물론 angle값은 2개가 있어야 할테고, 위치 벡터를 다시 설정해보면..
position( cosf( angleY)*radius, cosf(angleX)*radius, ????? );
z 좌표값을 어떻게 계산해야 할까요? 간단할 것 같은데.. 1시간동안 삽질중..ㅡ.ㅡ;;
중학교 수학수준같은데..끙~
참, 그리고 위에같은 방식으로 하면 혹시 짐벌락(?) 문제가 생기나요?
오래전 책에서 본거라서 정확히 어떤 상황에서 생기는 문제인지 정확히 모르겠네요.
2) 오일러 회전에는 항상 짐벌락이 도사리고 있습니다.