0

我正在开发一个轨道编辑器,发现自己处于需要定义两个感人圈子的情况。理想情况下,我想知道这些圆的中心点和半径。

我拥有的信息是每个圆的圆周上的一个点,以及该点与圆的切线。

我自己发现,如果我知道这些点的切线,我就知道中心点必须位于的线上。

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| ) 保持在最低限度。

4

1 回答 1

0

如果您只有切向量和点,则信息不足。您至少需要多 2 个点,每个圆圈多一个,否则 t1 和 t2 可以是任何实数。
(顺便说一句,A = -B) 不管,我假设圆圈没有重叠。无论哪种方式,如果不知道更多信息,我们就无法知道它们有多大(以及中心点在哪里)。

于 2011-04-04T01:12:13.143 回答