게임을 만들다 보면 포물선의 움직임을
사용해야 할 경우가 생기는데요.
포물선의 움직임은
대략 아래의 이미지 같이 움직입니다.
사진출저 [네이버]
이 부분에서 사용할 포물선의 공식은
공기의 저항은 무시하고
속도와 중력가속도는
각각 고정되어 있다고 가정합니다.
2D 게임에서 사용되는 포물선 공식은
보통 2차원의 x, y 좌표를 구하게 됩니다.
( 물론 3D 라면 x, y, z 3곳의 좌표를 구해야 합니다. )
사진출저 [네이버]
이 부분들은 피타고라스의 정리나 삼각함수를
기초로 하고 있어서이러한 부분들은
기본개념을 익혀두는게 좋습니다.
* 피타고라스의 정리 *
http://lhh3520.tistory.com/24
* 삼각함수 *
http://lhh3520.tistory.com/25
일단 먼저 x, y 좌표를 구하는 공식을
보자면 아래와 같습니다.
포물선의 움직임을 보면 물체의 움직임은
함수로 나타낼 수 있고물체가 움직이기 시작한
원점에서 일정시간에 물체가 있는 위치는
아래와 같이 삼각형으로 나타낼 수 있고
x, y 좌표 모두 삼각함수를 사용해서 구하면 됩니다.
사진출저 [네이버]
x 좌표 부터 살펴 보자면..
일단 피타고라스의 정리를 이용해서
위 삼각형의 빗변 (물체의 속도)을 구하면
이렇게 구할 수 있고,
삼각함수를 이용해 x 를 구하면
이기 때문에
로 나타낼 수 있습니다.
그리고 여기에 특정시간을 곱해주면
특정시간에 움직이고 있는 물체의
x 좌표를 구할 수 있습니다.
다음으로 y 좌표를 입니다.
y 좌표 또한 삼각함수를 이용해서 구하면
이기 때문에
로 구할 수 있습니다.
???? 그런데 마지막에 " -gt " 는
어디서 나온 것인가..?
이 부분은 y 좌표가 올라 갈 때
중력가속도에 의해 중력의 영향을 받기 때문에.
특정 시간에서의 중력 값을 빼주는 부분입니다.
그리고 y 좌표도 특정 시간을 곱해주면
특정시간에 움직이고 있는 물체의
y 좌표를 구할 수 있습니다.
위의 공식에 포함된 아래의 식은
자유낙하 공식 입니다.
이렇게 해서 포물선의 움직임을 하는
물체의 x, y 좌표를 구할 수 있습니다.
그리고 포물선을 그리는 물체가
최고점에 도달하는 시간을 구할 때는
물체가 최고점에 도달 했을 때
속도는 0 이므로
즉,
로 구할 수 있습니다.
또, 추가로 물체가 최고점의 높이에
올라갔을 때의 높이를 구할 때는
이고
로 구할 수 있습니다.
'Programming > 수학,물리' 카테고리의 다른 글
[수학] 호도법 (0) | 2021.11.30 |
---|---|
[수학] ReLU Function (ReLU 함수) (0) | 2019.06.29 |
[수학] Sigmoid Function (시그모이드 함수) (0) | 2019.06.29 |
[수학] 삼각함수 기본 (0) | 2015.03.25 |
[수학] 피타고라스의 정리 (0) | 2015.03.25 |