2017-03-14 5 views
0

私の質問は、2D空間の点の座標を計算することです。 私は、内側と外側の2つの円を中心にしています(内側は外側の中央にあります)。内側の円の接線に続く外側の円の上にある点を計算する方法

私は何を知っている: -the二つの円半径(R1、R2) スペース内のランダムな点(x)の-the 2D座標常に内側の円の外側

私が欲しいもの - ランダム点(x)からの2つの接線に続く外側の円上にある2点(y、z)の2次元座標

ここに私が必要とするものの図があります enter image description here

+0

[this](http://mathworld.wolfram.com/Circle-LineIntersection.html)を2回使用してください。最初に交点接線と小サイクルの得られた座標点(case = 0とすると、この方程式は問題を解決する)。二番目の交差点の線(2点の座標を持ち、最初のステップから計算)と大きなサイクル。 ポイントの状態は常に内側の円の外側にあります - *使用されていません*ポイントが2サイクルの間にある場合、回答は同じでした! –

答えて

2

レッツサークル中心が原点(0,0)(真の中心のものによって他の座標をシフト)、ランダム点はP、大きな円の点でQあり、小さな半径が大きい方がRある、rある座標です。

中心から接点、および交点までの距離の式のシステムを構築できますが、かなり長い係数の四次方程式を解く必要があります。

だから、最初に点Pから三角法で小さな円の接線の方程式を見つける:2を取得し、今すぐ両方の接線ポイントは未知パラメータsの

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

のような二次方程式を解くため

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) 

をソリューション​​2と交差点を見つける

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

解は4つの点から成っていることに注意してください - 2つの接線、接線ごとに2つの交点。

関連する問題