- Linear dynamics
뉴턴의 고전 역학을 프로그래밍으로 구현하는데 있어서 가장 기본이 되는 것이
물체의 위치와 속도 가속도를 고려하는 것 일 것이다.
물리 프레임을 구현하는데 그 시작으로 선형 동역학부터 보자
(참고로 앞으로 "선형" or "Linear" 이란 단어를 자주 보게 될 것인데 어렵게 생각지 말자.
1차 함수 또는 직선을 생각하고, 반대로 "비선형", "non linear" 은 곡선을 생각하자 .)
우선 변수들 부터 알아보자
float _Mass; // 질량
D3DXVECTOR3 _Location; // 위치
D3DXVECTOR3 _Velocity; // 속도
D3DXVECTOR3 _Acceleration; // 가속도
D3DXVECTOR3 _Force; // 힘
D3DXMATRIX _WorldMatrix; // 최종 결과 메트릭스
우리는 최초 오브젝트의 특성으로 질량(M)을 주어 줄 것이고, 외부에서 전하는 힘(F) 에 따라
가속도와 속도 위치를 순서대로 업데이트 할 것이다.
A = F / M
V = V + A * dt;
L = L + V * dt;
Update( float deltaTime )
{
assert(_Mass != 0);
_Acceleration = _Force / _Mass;
_Velocity += _Acceleration * deltaTime;
_Location += _Velocity * deltaTime;
// 계산 결과를 메트릭스로 나타내자. 여기서 Direct3D 함수를 사용하였다
D3DXMatrixTranslation( &_WorldMatrix, _Location.x, _Location.y, _Location.z );
}
참 쉽죠잉~~
'Dev.Write' 카테고리의 다른 글
MFC Custom_Control 연습 (0) | 2010.01.15 |
---|---|
DX로 만든 첫번째 게임 프로젝트 (0) | 2010.01.08 |
물리 프레임의 기본 - 충돌(1) (0) | 2010.01.06 |
물리 프레임의 기본 – 회전 동역학 (0) | 2010.01.02 |
물리 프레임의 기본 – 선형 동역학 (2) (0) | 2009.12.11 |