圆的反演变换(*)
来源:互联网 发布:马里亚纳网络性奴 编辑:程序博客网 时间:2024/05/17 22:23
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4773
题意:给定两个圆,告诉半径和圆心,它们是相离的,在这两个圆外给定一个点p,求符合条件:过点p的圆且与已知的两个
圆外切的所有圆的总数和它们的圆心坐标和半径。
分析:根据题意,我们设已知两个圆的半径分别为和,它们的圆心分别为和,设点p的坐标为
并设要求的圆的圆心为,半径为,那么根据它们的关系我们可以很快就列出方程组:
然后,现在的问题就是来解,但是你会发现这个方程是很难解的,因此为了简化问题,我们利用反演变换来做。
那么,怎么用反演变换来做? 首先,得知道什么是反演变换以及它有什么性质。
反演的定义:
已知一圆C,圆心为O,半径为r,如果P与P’在过圆心O的直线上,且,则称P与P'关于O互为反演。
反演的性质:
(1)除反演中心外,平面上的每一个点都只有唯一的反演点,且这种关系是对称的,位于反演圆上的点,保持在原处,位于
反演圆外部的点,变为圆内部的点,位于反演圆内部的点,变为圆外部的点。 举个最简单的例子,区间以1为反演
半径,那么反演后的区间就是,这就是一维反演,而圆的反演是二维反演。
(2)任意一条不过反演中心的直线,它的反形是经过反演中心的圆,反之亦然,特别地,过反演中心相交的圆,变为不过反
演中心的相交直线。
定理:不过反演中心的圆,它的反形是一个圆,反演中心是这两个互为反形的圆的一个位似中心,任意一对反演点是逆对应
点。用图形来解释,如下图:
那么,对于一个不过反演中心的圆,怎样求它的反形圆?
很容易知道我们只需要求出反形圆的圆心和半径就可以了。
对于上图我们设圆C1的半径为,C2的半径为,反演半径为
那么根据反演的定义有:
那么,消去得到:
这样我们就得到了反形圆的半径,那么还要求反形圆的圆心。
由于C1和O两点的坐标已知,而且我们知道O,C1,C2位于同一直线上,那么很明显对于C2的坐标,我们可以这样计算:
设O的坐标为,C1的坐标为,C2的坐标为
那么有:
至于由上面解处可以很容易得到,这样我们就完成了圆的反演变换。
由于本题的做法是这样的,先以点P为为反演中心,反演半径随便设置都可以,为了计算方便就设为1,把圆C1和圆C2反演后再求这两个圆的
公切线,再把这个公切线反演回去,那么就是一个过点P的圆,且与原来的C1和C2相切。
那么接下来就是如何计算两个圆的公切线了。这里只需要考虑公切线在同一侧的情况。那么,这个自己画图就能很容易计算了。
找到公切线后还要把它反演成圆,这个圆还经过P点,那么很容易得到了。
- 圆的反演变换(*)
- 圆的反演变换
- 圆的反演变换(HDU4773)
- 【圆的反演变换】hdu4773
- Mindis(圆的反演变换)
- 【圆的反演变换+cdq分治】共点圆
- hdu 4773 圆的反演变换
- 反演变换
- 反演变换
- 数学(论)里的一些定理(莫比乌斯反演,傅立叶变换,数论变换...)
- 离散变换和反演
- HDU 4773 反演变换
- HDU 6097 Mindis(圆的反演)
- 圆的反演
- 圆的反演
- 圆的反演
- 圆的反演模版
- 浅谈变换(证明)→反演→莫比乌斯反演→线筛运用
- 分布式集群环境下Session共享的简单解决方案
- BackTrack5 学习笔记2 常用工具
- 学习shiro框架
- ubuntu16.04 安装mysql5.7
- HDU 5889 最短路 网络流
- 圆的反演变换(*)
- 网易题目:集合+
- 实验吧三道sql注入题目解题思路以及当中至少点整理(简单的SQL注入、简单的SQL注入2、简单的SQL注入)
- 区间查询+位运算
- 时间复杂度和空间复杂度
- 第四章 第四节:子查询 (Subquery)
- java继承链中方法调用优先级.顺序:this.show(object)>super.show(object)>this.show((super)object)>super.show((super))
- 一对多查询(10)
- php eval