疑似コードの例を使用して、線と別の円に接する c1(c1x,c1y)
特定の半径を持つ円を見つけるアルゴリズムを探しています。この円は同じ線に接しています。r
l
c2(c2x,c2y)
ありがとう、
一方、最初の円からの距離 r2 にある点の軌跡は、最初の円と同じ中心 ( C ) にある半径 (r1+r2) の円です。OTOH、それはr2 のオフセット距離で指定された線 ( AB ) に平行な線です。それらの交点 ( F ) は、求める円の中心です。
明らかに、そのような交差点が2つあります。
もう 1 つの可能性は、最初の円が線に接する点 ( D ) で 2 つの円が接するようにすることです。このような 2 番目の円の中心 ( E ) を見つけるには、(c1,r1) 円の半径を (図上で) 「下」に (r2-r1) だけ長くします。
つまり、 Eを見つけるには、点C(r2-r1)
から(signed)の距離だけ「下に」行きます。Fを見つけるには、 Esqrt( (r1+r2)^2 - (r1-r2)^2 ) == 2*sqrt(r1*r2)
からの距離を「右」に移動します。
線上の任意の点を選択し、線の両側に長さ r の垂線を引きます。したがって、垂線の一方の端は線上にあり、もう一方の端は円の中心です。線上の別の点を選択し、同じことを行います。