0

두 개의 동적 원을 사용하여 접촉점을 반환하는 알고리즘을 찾고 있습니다. 어떤 이유에서든이를 검색하려고 할 때 나는 결과 속도를 반환하는 알고리즘을 설명하는 http://ericleong.me/research/circle-circle/과 같은 자원만을 찾을 수 있습니다.접촉점을 반환하는 원 대 스윕 테스트

+0

이것은 매우 기본적인 것 같아서 아마도 뭔가를 놓치고 있거나 잘못된 이름으로 찾으려고합니다. 이것이 중복으로 표시되면 느슨하게 할 운명을 찢어 라. ( – Julian

답변

0

잘 정의하지 않았습니다.

하자 원 센터 cx1_0 첫번째 원의 X 좌표 시작 방정식

cx1 = cx1_0 + t * vx1 
cx2 = cx2_0 + t * vx2 
cy1 = cy1_0 + t * vy1 
cy2 = cy2_0 + t * vy2 

으로 이동, VX1은 속도의 X 성분이다.

원심 중심 거리가 반지름의 합과 같을 때 원이 서로 닿습니다.

위의 대체 표현식, 열린 괄호, 알 수없는 매개 변수 t에 대한 2 차 방정식을 풀 수 있습니다. 0, 1 또는 2 개의 솔루션을 얻을 수 있습니다 (상호 작용 없음, 한 번 만지기, 교차 기간 있음). 그리고 터치의 순간 좌표 센터를 계산하고 외부 감동을위한 터치 포인트를 얻을 : 나는 내부 접촉이 발생할 수 있기 때문에 외부 강조

x_touch = (cx1 * r1 + cx2 * r2)/(r1 + r2) 
similar for y 

주 (이 경우 거리에서 나는 반경의 차이와 동일하지만, 그러한 경우는 당신에게 흥미롭지 않다고 생각하십시오.)