2017-03-14 9 views
0

제 질문은 2D 공간에서 점 좌표를 계산하는 것에 관한 것입니다. 두 개의 동그라미가 있습니다 - 바깥 쪽과 안쪽, 그 가운데에 가운데가 바깥 쪽입니다.내부 원의 점선을 따라 바깥 원에있는 점을 계산하는 방법

내가 알고있는 무엇 : 년 - 두 개의 원 '반경 (R1, R2)는 항상 내부 원의 외부 공간에서 임의의 점 (x)의 년 - 2 차원 좌표를 내가 원하는 무엇

알아 내기 : - 임의의 점 (x)에서 두 접선을 따라 바깥 쪽 원에있는 두 점 (y, z)의 2D 좌표

다음은 내가 필요한 것을 보여주는 그림입니다. enter image description here

+0

[this] (http://mathworld.wolfram.com/Circle-LineIntersection.html)을 두 번 사용하십시오. 교차점 탄젠트 선과 작은주기의 획득 좌표 점 (사례 = 0으로 결정,이 방정식은 문제를 푸십시오). 교차 선 (두 지점의 좌표를 가지며 첫 번째 단계에서 계산)과 큰주기의 두 번째. 점의 상태가 항상 내부 원의 바깥 쪽 공간에 있습니다 - * 사용되지 않음 * 점이 두주기 사이에있을 때 대답이 동일했습니다! –

답변

2

하자 원 '센터 원 (0,0) (참 센터들에 의해 다른 좌표를 이동), 임의의 지점 P, 큰 원의 포인트입니다 Q이며, 반경이 작은 하나의 큰는 R입니다 r입니다 좌표입니다.

중심에서 접선 점까지의 거리와 교차점의 거리에 대한 방정식 시스템을 만들 수 있지만 다소 긴 계수가있는 4 차 방정식을 해결해야합니다. 삼각 함수와 작은 원에 점 P에서 접선의 첫 발견 방정식에 따라서

: 두 접선 지점에 대한 지금

Dist = Sqrt(px^2+py^2) 
tan_angle = ArcSin(r/Dist) 
rot_angle = ArcTan2(py, px) 

ta1 = rot_angle - tan_angle 
ta2 = rot_angle + tan_angle 

and tangent points are 
t1x = r * sin(ta1) 
t1y = - r * cos(ta1) 

t2x = - r * sin(ta2) 
t2y = r * cos(ta2) 

알 수없는 매개 변수들에 대한

(px + s * (t1x - px))^2 + (py + s * (t1y - py))^2 = R^2 

같은 이차 방정식을 해결, 두 가지를 얻을 수 교차로의 솔루션 s1,s이 찾아 점

q11x = px + s1 * (t1x - px) 
and so on 

솔루션은 4 개의 점 - 두 개의 접선, 모든 접선에 대한 두 개의 교차점으로 구성됩니다.