수업 보충 · 4단계 설명
컴퓨터 화면에서 공은 왜 아래로 떨어질까?
화면 좌표계 → 위치·속도 → 중력과 저항 → 프레임별 계산까지 순서대로 이해합니다. 아래에는 이전에 작성한 4단계 설명 원문도 그대로 보존했습니다.
수학 좌표계와 컴퓨터 화면 좌표계 비교
위쪽이 +y, 아래쪽이 −y입니다.
아래쪽이 +y, 위쪽이 −y입니다.
학생에게 질문: “공을 위로 쏘아 올리려면 y 속도(vy)를 양수로 해야 할까요, 음수로 해야 할까요?”
정답: 화면에서 y가 줄어야 위로 움직이므로 vy = -3처럼 음수로 지정합니다.
네 줄의 코드로 이해하는 움직임
x += vx y += vy vy += 0.15 vx *= 0.96
① x += vx, y += vy
현재 위치에 이번 프레임에 이동할 거리를 더합니다. vx=6이면 오른쪽으로 6픽셀, vy=-3이면 위쪽으로 3픽셀 움직입니다.
② vy += 0.15
화면 아래 방향(+y)으로 속도가 매 프레임 0.15씩 증가합니다. 위로 가는 음수 속도가 줄어들고, 나중에는 아래 방향으로 바뀝니다.
③ vx *= 0.96
수평 속도가 직전 프레임의 96%가 됩니다. 감소율 4%를 여러 번 적용하는 단순한 저항 모델입니다.
④ 코드를 반복 실행하면?
속도가 다음 프레임의 위치를 결정합니다. 화면은 계산을 여러 번 반복하면서 부드럽게 움직이는 듯 보입니다.
프레임마다 어떤 값이 달라질까요?
초기값: x=0, y=0, vx=6, vy=-3. 한 프레임에서 먼저 위치를 바꾸고, 이어서 중력·저항을 적용합니다.
| 프레임 | x 위치 | y 위치 | vx | vy |
|---|---|---|---|---|
| 초기 | 0 | 0 | 6 | −3 |
교사용 수치표에서 1프레임 종료 시 (x, y)=(6,−3), (vx, vy)=(5.76,−2.85)이며 두 번째 종료 시 (11.76,−5.85), (약 5.53,−2.70)입니다. 수치는 소수 둘째 자리로 표시할 수 있습니다.
값을 바꿔 생각하기
Q1. vx *= 0.96을 vx *= 1.0으로 바꾸면?
정답 보기
수평 속도가 감소하지 않으므로 이 모형에서는 매 프레임 같은 수평 거리를 이동합니다.
Q2. vy += 0.15를 없애면?
정답 보기
초기 음수 수직 속도가 그대로 유지되므로, 이 네 줄만 사용하는 모형에서는 공이 계속 위로 움직입니다. 수평 방향에는 저항이 적용됩니다.
Q3. 폭죽 입자 효과는 어떻게 만들까요?
정답 보기
입자마다 방향과 초기 속도를 다르게 정해 생성하고, 같은 업데이트 규칙을 반복 적용하면 됩니다.
원본 4단계 설명 전체
보관된 「파이썬 중력설명.pdf」의 설명을 수업 참고용으로 옮겼습니다. 수치와 발문을 원문과 비교할 수 있습니다.
원본 설명 펼쳐 보기
위 수업용 풀이와 원본 문장의 모형이 조금 다른 경우, 실제 코드의 업데이트 순서를 기준으로 계산하세요. Pygame 원본에는 수직 속도의 저항(vy *= 0.96)도 있지만 여기서는 핵심 네 줄만 분리해 학습합니다.