[C++] 3.2.5 두 공의 충돌 : 작용, 반작용, 충격량
카테고리: C++ games
인프런에 있는 홍정모 교수님의 홍정모의 게임 만들기 연습 문제 패키지 강의를 듣고 정리한 필기입니다.😀
🌜 공부에 사용된 홍정모 교수님의 코드들 보러가기
🌜 [홍정모의 게임 만들기 연습 문제 패키지] 강의 들으러 가기!
Chapter 3. 게임 물리 맛보기 : 공 두 개를 충돌시켜보자
벡터, 상대 속도 등등, 해당 강의에서 다루었던 물리학적 개념들이 문과생인 나에겐 생소하고 잘 와닿지 않았던 개념이라 강의를 필기하기에 앞서 개인적으로 따로 공부하여 정리해보았다.
🔔 뉴턴의 제 3 법칙 : 작용, 반작용
물체 A가 물체 B에 힘을
작용
하면 물체 B는 물체A에게 크기는 같고 방향은 반대인반작용
의 힘을 동시에 가한다. 즉, 두 물체의 상호작용은 크기는 같고 방향은 반대다.
\[F_{AB}=-F_{BA}\]
- 야구 방망이로 야구공에 10의
작용
을 가하면 야구공도 야구방망이에 똑같은 크기 10에 방향은 정반대인반작용
힘을 가한다.
🔔 속도 변화량
\[△\vec{v}={\vec{J}\over{m}}={j×\vec{n}\over{m}}\]
속도변화량
은충격 힘의 벡터 / 질량
이다.- 가속도 = 힘(벡터)/질량
- \(F=ma\)
- \(a={F\over{m}}\)
속도변화량
은가속도
나 마찬가지다. 위 공식에서 나온 것!
- 가속도 = 힘(벡터)/질량
- 충격의 방향은 \(\vec{n}\)(단위 벡터)이며
- 충격량, 즉 충격의 크기는 \(j\)가 된다.
- 🔴공의 중심을 \(p_0\), 질량을 \(m_0\)
- 🟡공의 중심을 \(p_1\), 질량을 \(m_1\) 이라고 할 때
\[\vec{v_0}^{new}=\vec{v_0}^{old}+{j×\vec{n_1}\over{m_0}}\]
\[\vec{v_1}^{new}=\vec{v_1}^{old}-{j×\vec{n_1}\over{m_1}}\]
- ✨\(\vec{n_1}\)✨ 방향을 가지는 🟡공이 🔴공에게 충돌을 가했을 때를 기준으로 삼아 생각해보자.
- 충돌시 🔴공은 🟡으로부터
🟡의 작용
을 받고- 작용 방향 👉 \(vec{n_1}\)
- 🔴공의 충돌 후 속도 = 🔴공의 충돌 전 속도 + 🔴공의 속도 변화량
- \[\vec{v_0}^{new}=\vec{v_0}^{old}+△\vec{v_0}\]
- 🔴공의 속도 변화량
- \[△\vec{v_0}={j×\vec{n_1}\over{m_0}}\]
- 🔴공의 속도 변화량
- \[\vec{v_0}^{new}=\vec{v_0}^{old}+△\vec{v_0}\]
- 충돌시 🟡공은 🔴으로부터
🔴의 반작용
을 받는다.- 반작용 방향 👉 \(-vec{n_1}\)
- 🟡공의 충돌 후 속도 = 🟡공의 충돌 전 속도 + 🟡공의 속도 변화량
- \[\vec{v_1}^{new}=\vec{v_1}^{old}+△\vec{v_1}\]
- 🟡공의 속도 변화량
- \[△\vec{v_1}={j×(-\vec{n_1})\over{m_1}}\]
- 🟡공의 속도 변화량
- \[\vec{v_1}^{new}=\vec{v_1}^{old}+△\vec{v_1}\]
- 충돌시 🔴공은 🟡으로부터
- 뉴턴의 제 3 법칙에 따라 \(\vec{n_1}\) 방향으로 🟡공이 🔴공에게 충돌을 가했을 때
- 두 공이 받는 충격의 크기는 \(j\)로 같고
- 🔴공은
작용
으로 \(\vec{n_1}\) 방향의 힘을 받고 - 🟡공은
반작용
으로 \(-\vec{n_1}\) 방향의 힘을 받는다.
🔔 충격량 j 구하기
- 두 공이 충돌 이후에 그 충돌로 인한 속도 값을 업데이트 하려면
충격량 j
값을 알아야 한다.- 속도 변화량의 공식은 \(△\vec{v}={j×\vec{n}\over{m}}\) 이기 때문이다.
충격량 j
구하는 공식은상대 속도
의 공식으로부터 도출된다.- 도출 과정은 위 사진 참고
\[j={-(1+\epsilon)\vec{v_{0\vert{1}}}\cdot\vec{n_1}\over{1\over{m_0}}+{1\over{m_1}}}\]
🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄
댓글남기기