벡터 내적과 외적

작업공간/DirectX 2009.06.30 11:23

내적의 특성

  • 만약 u · v = 0 이라면 uv는 수직이다.
  • 만약 u · v > 0라면, 두 벡터간의 각도는 90보다 작다.
  • 만약 u · v < 0라면, 두 벡터간의 각도는 90보다 크다.

 

내적 구하기 예제

FLOAT D3DXVec3Dot(                           // 결과를 리턴한다
        CONST D3DXVECTOR3* pV1,         // 왼쪽 피연산자
        CONST D3DXVECTOR3* pV2          // 오른쪽 피연산자
);

D3DXVECTOR3
u(1.0f, -1.0f, 0.0f);
D3DXVECTOR3 v(3.0f, 2.0f, 1.0f);

// 1.0*3.0 + -1.0*2.0 + 0.0*1.0
// = 3.0 + -2.0
float dot = D3DXVec3Dot( &u, &v ); // = 1.0


외적의 특성

스칼라로 계산되는 내적과는 달리 외적은 다른 벡터로 계산되는데, uv 두 벡터의 외적을 수행하면, 다른 벡터인 p를 얻으며, 이는 uv에 서로 직각을 이룬다. 즉, pu에 직각이며, pv에 직각이다.

  • p = u × v = [ (uyvz - uzvy), (uzvx - uxvz), (uxvy - uyvx) ]
  • px = (uyvz - uzvy)
  • py = (uzvx - uxvz)
  • pz = (uxvy - uyvx)

 

내적 구하기 예제

D3DXVECTOR3* D3DXVec3Cross(
       
D3DXVECTOR3* pOut,                    // 결과를 리턴한다
        CONST D3DXVECTOR3* pV1,         // 왼쪽 피연산자
        CONST D3DXVECTOR3* pV2          // 오른쪽 피연산자
);


이 글은 스프링노트에서 작성되었습니다.

신고

'작업공간 > DirectX' 카테고리의 다른 글

32비트 DWORD <-> RGBA 분리/조합 하기  (2) 2010.07.20
SetTextureStageState의 D3DTSS_TEXCOORDINDEX 옵션  (0) 2009.10.06
벡터 내적과 외적  (0) 2009.06.30

설정

트랙백

댓글