Circle-Rectangle collision detection (intersection)을 확장하는 소프트웨어를 작성하여 충돌에 대한 응답을 포함합니다. 원 - 가장자리와 원 - 직사각형은 다소 단순합니다. 그러나 원 - 서클은 나를 곤혹스럽게 만들었다.원 - 서클 충돌 해결
예를 들어 이산 이벤트 시뮬레이션에서 두 개의 원이 빨간색과 녹색으로 충돌하게합니다.
들이 충돌 직후 우리가 할 수 : 우리는 다음과 같은 상황이있을 수 있습니다 여기에
가 RIP 및 GIP는 이전의 클럭 틱에서 원의 위치했다. 현재 시계 틱에서 충돌은 RDP와 GDP에서 감지됩니다. 그러나 두 개의 원이 RCP와 GCP에있을 때 시계 틱간에 충돌이 발생했습니다. 시계 틱에서 빨간색 원은 RVy를 아래쪽으로, RVx는 오른쪽으로 이동합니다. 녹색 원이 GVy를 아래쪽으로, GVx가 왼쪽으로 이동합니다. RVy는 GVy와 동일하지 않습니다. RVx는 GVx와 동일하지 않습니다. 원호 중심 사이의 거리가 원 '반경의 합보다 작거나 같은 경우
충돌이 발생, 즉 위의 그림에서,이고, D < = RR (+ 할머니). d < (Rr + Gr)의 충돌이 발생하면 서클의 속도 구성 요소를 조정하기 전에 DP를 CP에 다시 배치해야합니다. d == (Rr + Gr)의 경우 DP가 CP에 있기 때문에 재 위치 지정이 필요하지 않습니다.
다음은 문제입니다. CP로 이동하려면 어떻게해야합니까? 일부 저자는 다음 그림에서 p로 주어진 침투의 절반이 적용될 것을 제안했습니다.
은 나에게 그건 그냥 일반 잘못되었습니다. 두 개의 원의 속도 벡터가 같다고 가정합니다.이 예제에서는 그렇지 않습니다. 나는 침투가 계산과 관련이 있다고 생각하지만, 어떻게하면 나를 피할 수 있을지 생각합니다. 나는이 문제가 Gcdy와 GCdx를 풀기를 원하는 비슷한 삼각형의 문제로 재 작성 될 수 있다는 것을 알고있다.
충돌
자체 탄성으로 모델링되고, 관성 교환 수학 제자리에 이미. 유일한 문제는 충돌시 원을 배치하는 위치입니다.
어떤 종류의 충돌을 찾으십니까? 신축성 (에너지 손실 없음)? 비탄성 (에너지 손실)? 두 동그라미가 서로 붙어서 한 쌍으로 계속 움직입니까? – John
이 질문은 프로그래밍이 아닌 물리학에 관한 주제이기 때문에 주제가 아닌 것으로 보입니다. – tom10
@john 충돌은 탄성으로 모델링됩니다. 관성 교환을위한 수학은 이미 자리에 있습니다. 문제는 서클을 배치하는 위치입니다. – Gus