2011-09-18 5 views
3

, 그것은 충돌의 시간을 계산할 수있을만큼 쉽게 : http://twobitcoder.blogspot.com/2010/04/circle-collision-detection.html이 원은 시작 포인트를 고정 및 이동 경로 고정되어 있다고 가정찾기 지점 (원 + 시간 이동) 선형 이동이 원 대한

, 충돌 시간을 계산합니다.

원 1 : 점 X1 시작, Y1 속도 VX1, VY1 (고정 시작점 고정 된 직선 이동 경로), 반경 R1 원 2 : 시작점

것이 가능 그것을 중심으로 다른 방법을하기위한 것이다 반경 R2

최소 이동 시간 동안 두 원의 충돌 위치를 결정할 수 있습니까?

I.E. Circle 1은 0,0에서 시작하여 1,0 (1 시간당 오른쪽으로 1 단위) 이동합니다. Circle 2는 5,5에서 시작하여 시간당 1 유닛을 이동할 수 있습니다. 충돌 위치는 무엇입니까 (또는 VX2 , VY2 원 (2)은 가장 낮은 시간 (T)에서 2 개의 원이 충돌하기 위해 움직일 필요가있다. 두 원의 반지름은 1

이다.이 예에서, 해결책은 원 3시 3 분. 충돌 지점, 충돌 시간, VX2, VY2와 같은 알려지지 않은 변수가 있으면 질문이 상당히 복잡해집니다. VX2 및 VY2는 | VX1 | + | VX2 |에 의해 제약을 받지만, = 1

질문에 대한 이유는 1.

은 무력 솔루션은 원 1의 위치를에서 모든 확인하는 것이 '캐치'원하기 위해 이동해야하는 위치 원이 말씀하는 것입니다

시간 간격을 계산하고 원 2가 원 1과 충돌하는지 계산합니다. 그러나 원의 충돌 지점을 놓칠 수 있습니다. 빠른 속도로 움직이거나 최적의 점 등을 얻을 수 있습니다.

답변

3

이 문제를 간단히 해결할 수있는 두 가지 열쇠는 다음과 같습니다.

  • 첫째로 포인트 reac 시간 tx2에서 히브리어는 x2에 중심을 둔 서클을 형성합니다.
  • 두 번째로 원이 만질 수있는 첫 번째 순간은 접선 방향으로 만져야합니다.

이는 점 x2(0), x2(T), 접점 및 x1(T) 모두 동일 선상에 있음을 우리에게 얘기를 결합합니다.

우리는 이것을 도시하는 도면을 그리는 경우 우리가 t 단일 이차 방정식 얻을 : t 쉽게 구해질 수

|| x2(0) - x1(0) - v1 t ||^2 = (r1+r2+t)^2 

한다.

v2의 방향을 얻으려면 x1(T)-x2(0) 방향으로 단위 벡터를 사용해야합니다.

+0

Michael, 2 차 변수의 'a', 'b', 'c'변수를 표시 하시겠습니까? 나는 'x'가 우리가 풀려고하는 t라고 가정합니다. 감사! –

+1

https://sites.google.com/site/therobotsbrain/files/circle_intersection_time에서 PDF 형식으로보다 명확한 설명을 올렸습니다.pdf 잘하면 물건을 명확하게 만들 것입니다 (스택 오버플로 수학을 쓰는 것은 쉽지 않습니다 ..) –

+0

감사합니다. 매우 감사 –