DirectX Graphics 프로그래밍 가이드 고정 기능 파이프라인 변환 행렬 회전   [목차열람] [주소복사] [슬롯비우기]
회전
 
Microsoft DirectX 9.0

회전


여기에서는, 왼손 좌표계의 변환에 대해 설명한다. 따라서, 다른 곳에서 본 변환 행렬과는 다른 경우도 있다. 더 자세한 정보는, 「3D 좌표계」를 참조할것.

다음의 변환은, 점 (x, y, z)을 x 축을 중심으로 회전해 새로운 점 (x', y', z')을 생성한다.

x 회전 행렬

다음의 변환은, 점을 y 축을 중심으로 회전한다.

y 회전 행렬

다음의 변환은, 점을 z 축을 중심으로 회전한다.

z 회전 행렬

이러한 행렬의 예에서는, 그리스 문자 시타 (θ)는, 회전 각도를 라디안 단위로 나타내고 있다. 각도는, 회전축을 중심으로 해 원점 방향을 향한 시계회전으로 측정한 것이다.

C++ 애플리케이션에서는, Direct3D extension (D3DX) 유틸리티 라이브러리가 제공하는 D3DXMatrixRotationX 함수,D3DXMatrixRotationY 함수,D3DXMatrixRotationZ 함수를 사용해 회전 행렬을 생성 한다. 다음 코드는,D3DXMatrixRotationX 함수의 코드이다.

D3DXMATRIX* WINAPI D3DXMatrixRotationX
    ( D3DXMATRIX *pOut, float angle )
{
#if DBG
    if(! pOut)
        return NULL;
#endif

    float sin, cos;
    sincosf(angle, &sin, &cos);  // Determine sin and cos of angle.

    pOut->_11 = 1.0f; pOut->_12 =  0.0f;   pOut->_13 = 0.0f; pOut->_14 = 0.0f;
    pOut->_21 = 0.0f; pOut->_22 =  cos;    pOut->_23 = sin;  pOut->_24 = 0.0f;
    pOut->_31 = 0.0f; pOut->_32 = -sin;    pOut->_33 = cos;  pOut->_34 = 0.0f;
    pOut->_41 = 0.0f; pOut->_42 =  0.0f;   pOut->_43 = 0.0f; pOut->_44 = 1.0f;

    return pOut;
}


© 2002 Microsoft Corporation. All rights reserved.
↑TOP