数学 / 直线与圆 · 从方程到位置关系 / 圆的标准方程与一般方程 待审核 4 / 6
配方 · D² + E² − 4F

圆的标准方程与一般方程

圆是平面上到定点距离等于定长的点的集合。这句定义直接翻译成方程就是标准方程;把它展开并重新命名系数,得到便于联立求解的一般方程。两种写法各有专长,互相转换只需一次配方。

1 · 标准方程

圆心 C(a,b)C(a, b)、半径 rr 的圆上任一点 (x,y)(x, y) 满足 (xa)2+(yb)2=r\sqrt{(x-a)^2 + (y-b)^2} = r,两边平方即

(xa)2+(yb)2=r2(x - a)^2 + (y - b)^2 = r^2

三个参数一目了然,故凡是已知或要求圆心与半径的题目都用这一式。圆心在原点时简化为 x2+y2=r2x^2 + y^2 = r^2

2 · 一般方程与配方

把标准方程展开:x2+y22ax2by+(a2+b2r2)=0x^2 + y^2 - 2ax - 2by + (a^2 + b^2 - r^2) = 0。记 D=2aD = -2aE=2bE = -2bF=a2+b2r2F = a^2 + b^2 - r^2,得

x2+y2+Dx+Ey+F=0x^2 + y^2 + Dx + Ey + F = 0

特征是 x2x^2y2y^2 的系数相等且不为零,且没有 xyxy 项。反向转换靠配方:

(x+D2)2+(y+E2)2=D2+E24F4\left(x + \frac{D}{2}\right)^2 + \left(y + \frac{E}{2}\right)^2 = \frac{D^2 + E^2 - 4F}{4}

圆心是 (D2,E2)\left(-\frac{D}{2}, -\frac{E}{2}\right),而右端决定这个方程到底画出什么。

3 · 三种情形

定理 3.1 方程 x2+y2+Dx+Ey+F=0x^2 + y^2 + Dx + Ey + F = 0 表示圆当且仅当 D2+E24F>0D^2 + E^2 - 4F > 0,此时半径为 D2+E24F2\frac{\sqrt{D^2+E^2-4F}}{2}。该式等于零时方程只有一个解——点 (D2,E2)\left(-\frac{D}{2}, -\frac{E}{2}\right);小于零时无实数解,方程不表示任何图形。

x2+y22x+1=0x^2 + y^2 - 2x + 1 = 0(x1)2+y2=0(x-1)^2 + y^2 = 0,只有 (1,0)(1, 0) 一个解,习惯上称作点圆;x2+y22x+5=0x^2 + y^2 - 2x + 5 = 0 配方后右端是 4-4,实平面上无图形。

图 3-1 · 一般方程的三种情形。可拖动 DDEEFF 观察 D2+E24FD^2 + E^2 - 4F 的符号如何在圆、点、无图形之间切换;另一栏给出三点定圆。

数值实现上这三种情形的判定次序要紧:必须先判右端的符号,再开平方。反过来先算 r=D2+E24F2r = \frac{\sqrt{D^2+E^2-4F}}{2} 再检查,右端为负时 Math.sqrt 返回 NaN,而 NaN 不抛异常也不参与比较(任何与它的比较都是 false),一路传到绘图代码里表现为「圆凭空消失」,看不出是哪一步出的问题。circleFromGeneral 因此返回一个带 kind 字段的结果,把三种情形写进类型,调用方无从忽略。

4 · 三点定圆

不共线的三点唯一确定一个圆。求法用一般式而非标准式:把三点分别代入 x2+y2+Dx+Ey+F=0x^2 + y^2 + Dx + Ey + F = 0,得到关于 DDEEFF 的三元一次方程组;若代入标准式,未知量 aabbrr 出现在平方项里,方程组是非线性的。这是一般方程存在的主要理由。

例 4.1 求过 (0,0)(0,0)(4,0)(4,0)(0,3)(0,3) 的圆。代入得 F=0F = 016+4D+F=016 + 4D + F = 09+3E+F=09 + 3E + F = 0,解出 D=4D = -4E=3E = -3F=0F = 0,故圆心 (2,1.5)(2, 1.5)、半径 16+92=2.5\frac{\sqrt{16+9}}{2} = 2.5。三点构成直角三角形,斜边中点恰是圆心、斜边之半恰是半径,与结果相符。

注 · circleThrough3 的第一版实现漏了一个负号:两式相减解出的是一般式的 DDEE,而圆心是 (D2,E2)\left(-\frac{D}{2}, -\frac{E}{2}\right),直接把解当圆心用就把圆心镜像到了原点另一侧。这个错误在图上不显眼——圆的大小对,位置也「像是那么回事」——但 oracle 单测的第一条(三点是否都落在算出的圆上)立刻给出 3.683.68 的残差。这类符号错误正是「拿独立参照实现比对」比「肉眼看图」有效的地方。

5 · 参考文献

  1. Circle. Wikipedia. 圆的方程、标准式与一般式的关系。https://en.wikipedia.org/wiki/Circle
  2. Circumscribed circle. Wikipedia. 三点定圆即三角形的外接圆。https://en.wikipedia.org/wiki/Circumscribed_circle
  3. Completing the square. Wikipedia. 配方法与一般式到标准式的转换。https://en.wikipedia.org/wiki/Completing_the_square