易错点

交点落在直线上却不在线段内

用「圆心到直线的距离小于半径」判出两个交点,那是圆与**整条直线**的交点;题目要的若是线段(三角形的边、给定区间上的一段),还得回头验交点在不在这一段里。

错在哪

圆与直线的位置关系只看一个数:圆心到直线的距离 dd 与半径 rr。d<rd<r 相交、d=rd=r 相切、d>rd>r 相离——这条判据干净利落,但它判的是整条直线。

题目里出现的常常不是直线,而是直线的一段:三角形的一条边、线段 ABAB、区间 [0,4][0,4] 上的那一段。直线上的两个交点可能一个在段内、一个在段外,甚至两个都在段外。这时 d<rd<r 仍然成立,段与圆的公共点却可能只有一个、甚至一个也没有。

反过来也有:段的端点恰好落在圆上时,这个点同属相邻两条边,计数时只能算一次。

翻车现场

2009 年浙江卷(理)第 7 题:三边为 3,4,53,4,5 的直角三角形,问它的边与半径 11 的圆最多有几个公共点。

把直角顶点放在原点,两条直角边沿坐标轴,取圆心 (12,12)\left(\tfrac12,\tfrac12\right)。到 xx 轴的距离是 12<1\tfrac12<1,按直线的判据「有两个交点」,解出来是

x=12±1−14=12±32,x=\tfrac12\pm\sqrt{1-\tfrac14}=\tfrac12\pm\tfrac{\sqrt3}{2},

即 x≈1.366x\approx 1.366 与 x≈−0.366x\approx -0.366。后一个是负数——它在 xx 轴这条直线上,却不在 [0,4][0,4] 这条边上。这条边实际只贡献 11 个公共点。

不做这一步核验的人,会以为「三条边到圆心的距离都小于 11 就能得 66 个点」,一路答到 66。

怎么防

  • 判据分两步写:第一步用 dd 与 rr 定「直线上有几个交点」,第二步把交点的坐标(或参数 tt)解出来,逐个验它在不在段内。别把第一步的结论直接当答案。
  • 用参数形式算:把线段写成 P=U+t(V−U), t∈[0,1]P=U+t(V-U),\ t\in[0,1],代进圆方程解 tt,只留 t∈[0,1]t\in[0,1] 的根。段内段外一目了然,不必事后补验。
  • 端点单独过一遍:端点在圆上时,它同时属于两条边;数总数时去重。
  • 收口时回头读题:题目说的是「直线」「边」「线段」还是「弧」——这个词决定了要不要做第二步。

共 1 道题考到本条。