Simulizer

Projectile motion

이 페이지의 결과는 일정한 초기 속도와 각도로 던진 물체가 그리는 궤적입니다. 공기 저항이 없다고 가정한 고전적인 모델입니다.

Model

수평 위치 x(t) = v₀ cos(θ) · t, 수직 위치 y(t) = v₀ sin(θ) · t - (1/2) g t².

Steps

  1. 새 파일을 만들고 다음을 두세요:
    • 초속 v0 = 30.0 (m/s)
    • 각도 theta_deg = 45.0
    • 중력 g = 9.81
    • 시간 간격 dt = 0.01, 시점 수 n = 1000
  2. theta = theta_deg * π / 180 으로 각도를 라디안으로 변환하세요.
  3. 길이 n + 1 인 배열 x, y 를 만들고, 초기값을 x[0] = 0, y[0] = 0 으로 두세요.
  4. i1 부터 n 까지 도는 반복문 안에:
    • t = i * dt
    • x[i] = v0 * cos(theta) * t
    • y[i] = v0 * sin(theta) * t - 0.5 * g * t * t
    • 만약 y[i] < 0 이면 반복을 멈추세요 (땅에 떨어짐).
  5. 반복 뒤에 두 배열을 산점도(scatter) 패널로 보내세요 — x 가 가로, y 가 세로.

Pitfalls

  • y 가 음수가 된 뒤에도 계산을 계속하면 궤적이 땅 아래로 내려갑니다. 멈춤 블록을 빠뜨리지 마세요.
  • 공기 저항을 무시한 모델이므로, 실제 야구공이나 총알의 궤적과는 차이가 큽니다.

Variations

  • 각도 비교 — 같은 초속으로 30°, 45°, 60° 세 궤적을 한 그래프에 겹쳐 그려 보세요. 45°일 때 가장 멀리 날아갑니다.
  • 공기 저항 추가 — 매 시점마다 속도 벡터와 반대 방향으로 -k * v 가속도를 더하세요. 궤적이 비대칭으로 변합니다.

Accuracy

해석해(closed-form)가 있는 단순한 모델이라, 수치 적분 오차는 무시할 수 있는 수준입니다. 다만 공기 저항이나 바람 같은 요소를 더해 모델을 복잡하게 만들면, 적분 오차가 무시할 수 없는 크기로 커집니다.

simulizer · projectile