DirectX

회전행렬을 이용하여 사각형 회전

HYuk 2021. 7. 3. 16:13
728x90

#회전행렬

회전 행렬이란?

원점을 기준으로 한점의 좌표값을 세타만큼 회전시켰을때,

그 해당 좌표를 구하는 방법이다.

 

위에서 x, y를 세타만큼 회전하여 x', y'가 나왔을 때

다음과 같이 정리 할 수 있다.

 

해당 식의 유도 과정은 회전행렬 식 관련하여 검색해보면 많이 나온다.

 

m_fAngle += 5.f;
    
float fRad = D3DXToRadian(m_fAngle);
        
	for (int i = 0; i < 4; ++i)
	{
		vQ[i].x = vP[i].x*cosf(fRad) - (vP[i].y*-sinf(fRad));
		vQ[i].y = vP[i].x*-sinf(fRad) + vP[i].y*cosf(fRad);

		vQ[i] += m_tInfo.vPos; // 원하는 위치로 이동
	}

 

vP 의 벡터를 사각형을 그리기 위한 4개의 점이라 했을 때,

 

해당 4개의 점을 각각 위의 식에 따라 회전시켜서 찍은뒤

 

4개의 선을 이어주면 된다.

 

네모 회전 - YouTube

 

728x90

'DirectX' 카테고리의 다른 글

모작일지(3) 현재 진행상황  (0) 2021.08.09
모작일지(2)  (0) 2021.08.09
모작 일지 (1)  (0) 2021.08.05
D3DMATRIX, D3DXMATRIX 및 함수  (0) 2021.07.06
몬스터 -> 플레이어 추적 (내적 이용)  (0) 2021.07.06