D3DXQuaternionRotationMatrix(&qQut, &Rotmat);
float fqw = qQut.w * qQut.w;
float fqx = qQut.x * qQut.x;
float fqy = qQut.y * qQut.y;
float fqz = qQut.z * qQut.z;
float fYaw = atan2f( 2.0f * ( qQut.x * qQut.z + qQut.w * qQut.y ), ( -fqx - fqy + fqz + fqw ) ); // Yaw
float fPitch = asinf( 2.0f * ( qQut.w * qQut.x - qQut.y * qQut.z ) ); // Pitch
float fRoll = atan2f( 2.0f * ( qQut.x * qQut.y + qQut.w * qQut.z ), ( -fqx +fqy -fqz +fqw ) ); // Roll
float x = D3DXToDegree( fPitch );
float y = D3DXToDegree( fYaw );
float z = D3DXToDegree( fRoll );
'Programming > 물리엔진/게임엔진' 카테고리의 다른 글
OpenGL의 기본 기능만을 이용해 만든 게임 (0) | 2013.01.29 |
---|---|
오일러각 - gimbal lock 문제(쿼터니언으로 해결 가능) (0) | 2013.01.29 |
캡슐 형태와 점, 구의 충돌 체크 (0) | 2013.01.29 |
구와 박스(OBB 또는 AABB)의 충돌체크 (0) | 2013.01.29 |
물리엔진 구현에 필요한 요소들 및 구현 팁(생각나는대로 추가 중) (0) | 2013.01.29 |