数学 / 直线与圆 · 从方程到位置关系 / 圆与圆的位置关系 待审核 6 / 6
圆心距 · 根轴

圆与圆的位置关系

两圆的位置关系有五种,判据全在圆心距上。与直线和圆那一节相比,五种关系里多出「内含」与「内切」,它们的存在使得判据要比较两个界而不是一个。

1 · 五种关系与两个界

设两圆半径 r1r_1r2r_2,圆心距 dd

关系 判据 公共点 公切线
外离 d>r1+r2d > r_1 + r_2 00 44
外切 d=r1+r2d = r_1 + r_2 11 33
相交 r1r2<d<r1+r2\vert r_1 - r_2 \vert < d < r_1 + r_2 22 22
内切 d=r1r2d = \vert r_1 - r_2 \vertd0d \ne 0 11 11
内含 d<r1r2d < \vert r_1 - r_2 \vert 00 00

两个界 r1+r2r_1 + r_2r1r2|r_1 - r_2|dd 的取值分成五段,落在界上的两种是相切。同心圆(d=0d = 0)是内含的极端情形,半径还相等时两圆重合。

公切线的条数与公共点个数反着来:公共点越多,公切线越少。外离时四条(两条外公切线、两条内公切线),每有一对圆「靠近一步」就消掉一条。

图 1-1 · 两圆的五种关系。可拖动第二个圆的圆心与半径,读数给出圆心距与两个界的比较;相交时图上标出公共弦,其余情形标出根轴。

2 · 根轴:两式相减

两圆的一般方程相减,平方项 x2+y2x^2 + y^2 抵消,剩下一个一次方程:

(D1D2)x+(E1E2)y+(F1F2)=0(D_1 - D_2)x + (E_1 - E_2)y + (F_1 - F_2) = 0

这条直线称为两圆的根轴。相交时它就是公共弦所在的直线:两个交点同时满足两个圆的方程,自然也满足相减所得的方程。这一步把「求公共弦」从解二元二次方程组化简成了「解一个线性方程,再与任一圆求交」。

根轴垂直于圆心连线,且在两圆相离时依然存在:它由「到两圆的切线长相等」这一性质刻画,几何上仍是一条实实在在的直线,只是与两圆都不相交。同心圆没有根轴,两式相减后一次项也一并抵消,剩下的是一个矛盾式或恒等式。

例 2.1 求圆 x2+y2=9x^2 + y^2 = 9 与圆 (x3)2+(y1)2=4(x-3)^2 + (y-1)^2 = 4 的公共弦所在的直线。两式化为一般式:x2+y29=0x^2+y^2-9=0x2+y26x2y+6=0x^2+y^2-6x-2y+6=0。相减得 6x+2y15=06x + 2y - 15 = 0,即公共弦所在的直线。圆心距 d=103.162d = \sqrt{10} \approx 3.162,介于 32=1|3-2| = 13+2=53 + 2 = 5 之间,故两圆确实相交。

3 · 内切与内含的分界

内切与内含都发生在「一个圆在另一个里面」的格局中,分界是 d=r1r2d = |r_1 - r_2|。这个界比外切那个界容易记错,原因是它带绝对值:谁的半径大并不影响判据,但影响切点的位置

切点总在圆心连线上,且落在较大的那个圆上:若 r1>r2r_1 > r_2,切点在从 C1C_1 出发经过 C2C_2 的方向上,距 C1C_1r1r_1;反过来则从 C2C_2 一侧量出。circleCircle 的内切分支据此按半径大小选方向,写成 k=±r1dk = \pm \frac{r_1}{d} 两种取法,两个圆谁在里面这件事不能只靠 dd 判定。

4 · 分类的容差

浮点计算里「d=r1+r2d = r_1 + r_2」几乎永远不会精确成立,故五种关系的判定要带容差。相切是一个测度为零的情形:在连续拖动圆心的交互里,若不给容差,屏幕上明明相切的一刻会被判成相交或相离,分类结果在两种之间跳。

circleCircle 的容差取相对量——与 r1r_1r2r_2dd 的量级挂钩,而不是一个固定的 10910^{-9}。理由与直线那边相同:坐标放大一千倍后,同样的「相切」判定不该突然变严。相交分支里的 r12a2\sqrt{r_1^2 - a^2} 还额外与零取大,防止 aa 略微超出 r1r_1 时开出 NaN——这与弦长公式那处的处理是同一个模式(见 直线与圆的位置关系 §2)。

5 · 参考文献

  1. Circle–circle intersection. Wolfram MathWorld. 两圆交点的坐标公式与分类。https://mathworld.wolfram.com/Circle-CircleIntersection.html
  2. Radical axis. Wikipedia. 根轴的定义、与圆心连线垂直,以及三圆的根心。https://en.wikipedia.org/wiki/Radical_axis
  3. Tangent lines to circles. Wikipedia. 两圆公切线的条数与位置关系的对应。https://en.wikipedia.org/wiki/Tangent_lines_to_circles