본문 바로가기

Programming/DirectX

방향넣으면 각도 출력하는 함수

float CalAngle(D3DXVECTOR3 vDrt)
{
     D3DXVECTOR3   vP1, vP2;
     D3DXVECTOR3   vCrossResult;
     float    fDotResult;
     vP1 = D3DXVECTOR3(-1, 0, 0);
     vDrt = -1.0f * vDrt;

     //노말라이즈
     D3DXVec3Normalize(&vP2, &vDrt);
     // 외적구해서 내적 방향3을 정한다.
     D3DXVec3Cross(&vCrossResult, &vP1, &vP2);  
     // 내적구해서 각도를 구한다
     fDotResult = D3DXVec3Dot(&vP1, &vP2);

     if(vCrossResult.y > 0)
          return acosf(fDotResult);
     else if(vCrossResult.y < 0.0f)
     {
          return D3DX_PI * 2 - acosf(fDotResult);
     }

     return acosf(fDotResult);
}

'Programming > DirectX' 카테고리의 다른 글

애니메이션 1  (0) 2009.11.09
애니메이션 2  (0) 2009.11.09
애니메이션 3  (0) 2009.11.09
애니메이션 4  (0) 2009.11.09
내적(dot product) 외적(cross product) 이용  (0) 2009.11.06