Projectile motion
이 페이지의 결과는 일정한 초기 속도와 각도로 던진 물체가 그리는 궤적입니다. 공기 저항이 없다고 가정한 고전적인 모델입니다.
Model
수평 위치 x(t) = v₀ cos(θ) · t,
수직 위치 y(t) = v₀ sin(θ) · t - (1/2) g t².
Steps
- 새 파일을 만들고 다음을 두세요:
- 초속
v0 = 30.0(m/s) - 각도
theta_deg = 45.0 - 중력
g = 9.81 - 시간 간격
dt = 0.01, 시점 수n = 1000
- 초속
theta = theta_deg * π / 180으로 각도를 라디안으로 변환하세요.- 길이
n + 1인 배열x,y를 만들고, 초기값을x[0] = 0,y[0] = 0으로 두세요. i가1부터n까지 도는 반복문 안에:t = i * dtx[i] = v0 * cos(theta) * ty[i] = v0 * sin(theta) * t - 0.5 * g * t * t- 만약
y[i] < 0이면 반복을 멈추세요 (땅에 떨어짐).
- 반복 뒤에 두 배열을 산점도(scatter) 패널로 보내세요 —
x가 가로,y가 세로.
Pitfalls
y가 음수가 된 뒤에도 계산을 계속하면 궤적이 땅 아래로 내려갑니다. 멈춤 블록을 빠뜨리지 마세요.- 공기 저항을 무시한 모델이므로, 실제 야구공이나 총알의 궤적과는 차이가 큽니다.
Variations
- 각도 비교 — 같은 초속으로
30°,45°,60°세 궤적을 한 그래프에 겹쳐 그려 보세요. 45°일 때 가장 멀리 날아갑니다. - 공기 저항 추가 — 매 시점마다 속도 벡터와 반대 방향으로
-k * v가속도를 더하세요. 궤적이 비대칭으로 변합니다.
Accuracy
해석해(closed-form)가 있는 단순한 모델이라, 수치 적분 오차는 무시할 수 있는 수준입니다. 다만 공기 저항이나 바람 같은 요소를 더해 모델을 복잡하게 만들면, 적분 오차가 무시할 수 없는 크기로 커집니다.