0
点赞
收藏
分享

微信扫一扫

圆的反演学习笔记

秀妮_5519 2022-07-12 阅读 198

反演是平面上点到点的一个映射,除反演中心外每个点都有唯一的反演点与之对应
通过画图可以知道一些性质:

  1. 反演点在圆上,圆会反演成一条直线
  2. 反演点不在圆上,圆会反演成一个圆,与原来的圆位似
  3. 反演点在直线上,直线会反演成它本身
  4. 反演点不在直线上,直线会反演成一个圆
  5. 反演过后的相切关系不会改变

​​【HDU4773】Problem of Apollonius​​

给两个圆,一个点 圆的反演学习笔记_线框,求过 圆的反演学习笔记_线框 的一个或两个圆与这两个圆相切

考虑在 圆的反演学习笔记_线框 点反演,那么所求的圆会反演成一个直线
注意到如果是内切的话反演回去是一个外切一个内切,如果要两个外切的话两个圆心,反演点在外公切线的同一侧,利用初中知识求出外公切线再判断就可以了
圆反演出去可以用初中的相似,直线反演回来的时候,半径可以通过向直线做垂线的长度得到,而直径一定与垂线重合,于是可以较为方便得求出圆心和半径

​​code​​

​​【HDU6097】Mindis​​

初中几何题,将两个点按圆 圆的反演学习笔记_连线_04 反演出去,由于 圆的反演学习笔记_线框_05,那么 圆的反演学习笔记_连线_06 的相似比相同
于是最小的时候就是 圆的反演学习笔记_连线_07 的连线,看与圆有没有交点讨论就可以了

​​code​​

​​【HDU6158】The Designer​​

按两个大圆相切的地方反演,那么会是两条竖直的直线框住了一些圆
很方便得求出这些圆过后反演回去就可以了,反演回去可以 “做切线反演”
即考虑切点的反演点,不妨令切点到反演中心的距离为 圆的反演学习笔记_线框_08,那么真正的圆的切点的距离就是 圆的反演学习笔记_连线_09
而两个圆的半径之比是 圆的反演学习笔记_连线_10,发现就是要求切点到圆心距离的平方,知道圆心半径很方便求出

​​code​​

​​【计蒜客A1283】Finding the Radius for an Inserted Circle​​

按上面两个圆的切点为中心反演,那么就是两条直线框了一些点自上往下排
求出来过后反演回去就可以了
反演回去还是可以用 “做切线反演” 方法

#include<bits/stdc++.h>
#define cs const
using namespace std;
int T; double R, ans[11];
int main(){
scanf("%d%lf", &T,&R);
double y=-0.5*sqrt(3.0)/R; R=1/(2.0*R);
for(int i=1;i<=10;i++){ y-=2*R; ans[i]=R/(y*y-R*R); }
while(T--){
int k; cin>>k; cout<<(int)ans[k]<<'\n';
} return 0;
}


举报

相关推荐

0 条评论