圆的反演
ACM比赛计算几何就比较重要了,高中只学了个凸包,今儿从圆的反演学起吧。 先来看一道需要用反演解决的题: HDU4773 Problem of Apollonius 题意:给定两个圆(x1,y1,r1)、(x2,y2,r2),它们是相离的,在这两个圆外给定一个点p(x0,y0)。求符合条件:过点p的圆且与已知的两个圆外切的所有圆的总数和它们的圆心坐标和半径。 SOL:如果不知道反演,这道题的做法显然是列出两个方程: 然后发现这个东西根本就没有办法搞。所以就需要用到反演来解答此题。 反演的定义:已知一圆C,圆心为O,半径为r,如果P与P’在过圆心O的直线上,且 ,则称P与P'关于O互为反演点。 几条反演的重要性质: (1)过反演中心的圆,反形(经过反演之后的图形)为不过反演中心的直线。 (2)不过反演中心的直线,反形为过反演中心的圆。 证明的话比较显然,对于上面这个图,就是证明$|OM|*|OM^{'}| = |OC|*|OC^{'}|$就好了,也就是$\Delta OM^{'}C^{'} \sim \Delta OCM$。这个的话根据那个直角很容易得出。 (3)不过反演中心的圆,反形也为不过反演中心的圆,并且 反演中心为这两个互为反形的圆的位似中心 。 比如上图,O为反演中心,A和A'、B和B'都是互为反演点。证明从略。 这样的话显而易见的就得到了定理(4):