블로그는 나의 힘!
[ Programing ]/DirtectX92010. 2. 4. 18:10

(라인 그리기) ID3DXLine

핵심 : 
ID3DXLine* ILine;    
D3DXCreateLine( pd3dDevice, &ILine );    
ILine->DrawTransform( D3DXVECTOR3*, 1, &matWorld, color );     
ILine->DrawTransform( D3DXVECTOR3*, 2, &matWorld, color ); 


================================================================================= 


 ID3DXLine* ILine;      // 라인 그리기 설정
 D3DXMATRIX matWorld, matView, matProj;

 pd3dDevice->GetTransform(D3DTS_VIEW, &matView );                // 뷰 포트 설정
 pd3dDevice->GetTransform(D3DTS_PROJECTION, &matProj );     // 프로젝션 설정
 matWorld = matView *matProj;                       // 월드는 뷰 포트 * 프로젝션
 D3DXCreateLine( pd3dDevice, &ILine );      // Render 라인 생성
 
 ILine->SetWidth( 6.8f );              // 라인 굵기 설정
 ILine->SetAntialias( TRUE );      // Anti 설정 ( 잘 모름 )
 ILine->Begin();                          // 라인 그리기 시작
 
// 그릴 라인 첫번째 좌표 설정
const D3DXVECTOR3 vLine1( m_LINE[m_nLineWin].fX[i], m_LINE[m_nLineWin].fY[i], m_LINE[m_nLineWin].fZ );        
// 그릴 라인 두번째 좌표 설정
const D3DXVECTOR3 vLine2(m_LINE[m_nLineWin].fX[i+1], m_LINE[m_nLineWin].fY[i+1], m_LINE[m_nLineWin].fZ);

 ILine->DrawTransform( &vLine1, 1, &matWorld, m_LINE[m_nLineWin].color );     // 천번째 좌표 라인 설정
 ILine->DrawTransform( &vLine2, 2, &matWorld, m_LINE[m_nLineWin].color );     // 두번째 좌표 라인 설정

// 둘이 연결 되어서 라인이 된다.
 ILine->End();            // 라인 그리기 종료
 ILine->Release();      // 라인 해제


================================================================================= 



- 라인 그리기 및 라인 굵기 설정을 할 수 있다.

- 주의 사항 : 
  라인 생성을 계속 생성 하고 계속 해제 하는 방식으로 만들어야 한다. 
  라인 자체 존재가 일회용성 식으로 사용. 클래스 멤버 변수로 선언해 사용할수 없다.

Posted by Mister_Q