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개의 선을 이어주면 된다.
728x90