Init()
점 찍기
점 기준으로 세팅을 해줘야 한다.
왜냐하면 만약 위치 값까지 잡혀있다면 자전이 아닌 공전이 나오기 때문이다.
// 좌상단
m_vP[0] = { -m_tInfo.vSize.x * 0.5f, -m_tInfo.vSize.y * 0.5f, 0.f };
// 우 상단
m_vP[1] = { m_tInfo.vSize.x * 0.5f, -m_tInfo.vSize.y * 0.5f, 0.f };
// 우하단
m_vP[2] = { m_tInfo.vSize.x * 0.5f, m_tInfo.vSize.y * 0.5f, 0.f };
// 좌하단
m_vP[3] = { -m_tInfo.vSize.x * 0.5f, m_tInfo.vSize.y * 0.5f, 0.f };
회전 행렬 공식
Q.x = X * cos@ - Y * sin@;
Q.y = X * sin@ + Y * cos@;
Update()
회전 행렬 적용
for (int i = 0 ; i < 4 ; ++i)
{
m_vQ[i].x = m_vP[i].x * cosf(D3DXToRadian(m_fAngle)) - m_vP[i].y * -sinf(D3DXToRadian(m_fAngle));
m_vQ[i].y = m_vP[i].x * -sinf(D3DXToRadian(m_fAngle)) + m_vP[i].y * cosf(D3DXToRadian(m_fAngle));
m_vQ[i] += m_tInfo.vPos;
}
Render()
사각형 그리기
MoveToEx(hDC, m_vQ[0].x, m_vQ[0].y, nullptr);
for (int i = 1; i < 4;++i )
LineTo(hDC, m_vQ[i].x, m_vQ[i].y);
LineTo(hDC, m_vQ[0].x, m_vQ[0].y);
'Programming > DirectX 9' 카테고리의 다른 글
DirectX9 - 3DS MAX .x File Exporter & 멀티 애니메이션 만들기 (0) | 2021.04.11 |
---|---|
DirectX SDK 2010 June - c4005 매크로 재정의 에러 없애기 (0) | 2020.12.09 |
DirectX 9 - 행렬 관련 함수, 행렬을 이용한 회전 (0) | 2020.11.18 |
DirectX 9 - 벡터 관련 함수, 내적을 이용해서 마우스를 향해 이동 (0) | 2020.11.18 |
DirectX 9 설치 (0) | 2020.11.17 |