我正在开发一个轨道编辑器,发现自己处于需要定义两个感人圈子的情况。理想情况下,我想知道这些圆的中心点和半径。
我拥有的信息是每个圆的圆周上的一个点,以及该点与圆的切线。
我自己发现,如果我知道这些点的切线,我就知道中心点必须位于的线上。
C1 是我正在寻找的第一个圆的中心
P1 是圆的圆周上的一个点,我知道切线
A 是我在 P1 处知道的切线的法线
C2 是我正在寻找的第二个圆的中心
P2 是圆的圆周上的一个点,我知道切线
B 是我在 P2 处知道的切线的法线
C1 = P1 - t1 * A
C2 = P2 - t2 * B
我也知道两个中心之间的距离将等于中心到圆周上的点的距离之和。
|C1 - P1| + |C2 - P2| = |C1 - C2|
我还希望将 abs( |t1*A| - |t2*B| ) 保持在最低限度。