Skip to content

圆基础

  • 圆的表示:圆心、半径
  • 圆的周长:C=2πr
  • 圆的面积:S=πr2

圆的关系问题

点与圆的关系

  • 点在圆外
  • 点在圆上
  • 点在圆内

​判定方法:点到圆心距离(平方)与圆的半径(平方)比较。

​无精度误差。

直线与圆的关系

  • 相离
  • 相切
  • 相交

​判定方法:圆心到直线距离与圆的半径比较

​可以做到无精度误差。

圆与圆的关系

​令两圆半径分别为 r1r2,两圆圆心的距离为 d

  • 相同:r1=r2d=0
  • 相离:d>r1+r2
  • 外切:d=r1+r2
  • 相交:|r1r2|<d<r1+r2
  • 内切:d=|r1r2|
  • 内含:d<|r1r2|

交集问题

直线与圆的交点

​前提:直线与圆不相离

​直线:{P,v}

​圆:{C,r}

​设圆心到直线距离为 d,投影为 C,则:交点:OC±r2d2|v|v

圆与圆交点

​前提:两圆不相同、不相离、不内含

​两圆圆心连线与一圆心到交点连线夹角 α

​根据余弦定理:cosα=r12+d2r222r1d,sinα=1cos2α

​将两圆心连线对应向量进行伸缩旋转。

圆与多边形面积交

​从圆心将多边形剖分成若干三角形,求三角形与圆的面积交。

多个圆的面积并

​对于极角在 θlθr 之间的一段圆弧。

2S=x0r(sinθrsinθl)y0r(cosθrcosθl)+r2(θrθl)

​时间复杂度:O(n2logn)

切线问题

过圆外一点圆的切线

  • cosα=rd
  • 向量伸缩、旋转

两圆的公切线

  • 相离:4
  • 外切:3
  • 相交:2
  • 内切:1
  • 内含:0

外公切线

cosα=r1r2d

内公切线

cosα=r1+r2d

圆的反演

​给定反演中心点 O 和反演半径 R,若平面上点 PP 满足:

  • P 在射线 OP
  • |OP|×|OP|=R2

​则称点 P 和点 P 互为反演点。

​性质:

  • 圆外的点的反演点在圆内,反之亦然
  • 圆上的点的反演点为其自身
  • 不过点 O 的圆,其反演图形也是不过点 O 的圆
  • 过点 O 的圆,其反演图形是不过点 O 的直线
  • 两个图形相切,则它们的反演图形也相切

最小圆覆盖

​问题描述:给定平面上 n 个点,求一个半径最小的圆,能覆盖所有的点。

​引理:过三个不共线的点可以唯一确定一个圆。

​定理:如果点 p 不在点集 S 的最小圆覆盖圆内,那么它一定在 {p}S 的最小覆盖圆上,即最小覆盖圆一定经过点 p

时间复杂度:O(n)