3d 좌표를 2d로 바꾸는 법.

반응형

[출처] 3D 좌표 2D 좌표로 바꾸기 |작성자 하이요


//CONVERT_3DTO2D_POINT (함수)

POINT  CAppForm::CONVERT_3DTO2D_POINT ( const D3DVIEWPORT9& vp, const D3DXMATRIX& matView, const D3DXMATRIX& matProj, D3DXVECTOR3 v )
 {
  D3DXMATRIXA16 matCombine = matView * matProj;
  D3DXVec3TransformCoord ( &v, &v, &matCombine );

  v.x += 1.0f;
  v.y += 1.0f;
 
  v.x = ( vp.Width * (v.x  ) ) / 2.0f + vp.X;
  v.y = ( vp.Height * (2.0f-v.y) ) / 2.0f + vp.Y;

  POINT pt;

  pt.x = (long)v.x;
  pt.y = (long)v.y; 

  return pt;
 }

//--------------------------------------------------------------------------------------
//Note: 3D 좌표를 2D 좌표로 바꿔서 글씨 써주기

 D3DVIEWPORT9 vp;
 m_pd3dDevice->GetViewport ( &vp );
 
 D3DXVECTOR3 vPos ( 1000.0f, 0.0f, 0.0f );

 POINT pt = CONVERT_3DTO2D_POINT ( vp, m_matView, m_matProj, vPos );
 m_pFont->DrawText( pt.x, pt.y, fontColor, "ss222" );

꼭 Render 합시다!! ^^

웹에서 찾아보면 2D 좌표를 3D 좌표 바꿔주는건 많지만 3D 좌표를 2D 좌표로 바꾸지기는 별로 없으니 꼭 기억하자!! ^^

 

TAGS.

Comments