0
私の質問は、2D空間の点の座標を計算することです。 私は、内側と外側の2つの円を中心にしています(内側は外側の中央にあります)。内側の円の接線に続く外側の円の上にある点を計算する方法
私は何を知っている: -the二つの円半径(R1、R2) スペース内のランダムな点(x)の-the 2D座標常に内側の円の外側
私が欲しいもの - ランダム点(x)からの2つの接線に続く外側の円上にある2点(y、z)の2次元座標
私の質問は、2D空間の点の座標を計算することです。 私は、内側と外側の2つの円を中心にしています(内側は外側の中央にあります)。内側の円の接線に続く外側の円の上にある点を計算する方法
私は何を知っている: -the二つの円半径(R1、R2) スペース内のランダムな点(x)の-the 2D座標常に内側の円の外側
私が欲しいもの - ランダム点(x)からの2つの接線に続く外側の円上にある2点(y、z)の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つの交点。
[this](http://mathworld.wolfram.com/Circle-LineIntersection.html)を2回使用してください。最初に交点接線と小サイクルの得られた座標点(case = 0とすると、この方程式は問題を解決する)。二番目の交差点の線(2点の座標を持ち、最初のステップから計算)と大きなサイクル。 ポイントの状態は常に内側の円の外側にあります - *使用されていません*ポイントが2サイクルの間にある場合、回答は同じでした! –