随笔分类 -  计算几何

摘要:分治法,将所有点按x坐标进行排序,然后左右两半的点分别递归解决 考虑左边的点和右边的点的距离对答案产生的贡献:首先左右两半点分边计算得到的距离最小值为dis。显然只需要考虑和$P_$的x坐标相差不超过dis的点,对于这些点中的任意一点i,显然只需要考虑和i的y表座相差不超过dis的点,可以证明对于每 阅读全文
posted @ 2021-03-17 10:56 UCPRER 阅读(80) 评论(0) 推荐(0)
摘要:Graham 算法 先选一个y最小的点p(y相同选x最小) 然后将其他点以p为原点进行极角排序 从p点开始维护一个单调栈,如果栈顶两个元素和新加入点的叉积小于0就弹出。 Point tbBottom; bool cmpTB(Point a,Point b) {//上半平面极角排序; double x 阅读全文
posted @ 2021-03-17 10:42 UCPRER 阅读(162) 评论(0) 推荐(0)
摘要:定义: 给定平面上一个反演中心$O$,给定反演半径$r$,对于平面上任意一个点$A$,都可以找到一个点$A'$,使得$OA*OA'=r^2$,称$A'$为$A$关于$O$的反演点,以$O$为圆心$r$为半径的圆称为反演圆。(下图中圆K为反演圆,A和B互为反演点) 性质 过反演中心的直线反演后就是自身 阅读全文
posted @ 2021-03-08 17:15 UCPRER 阅读(1241) 评论(0) 推荐(0)
摘要:HDU4773 Problem of Apollonius(反演变换) 题意: 给定两个相离的圆,一个点P,求出过点P并且和两个圆都外切的所有圆。 思路: 以P为反演中心将两个圆O1,O2分别反演,得到O1',O2',则和O1,O2相切的圆反演后是一条不经过P点且与O1'、O2‘相切的直线。显然这条 阅读全文
posted @ 2020-12-09 17:59 UCPRER 阅读(105) 评论(0) 推荐(0)
摘要:POJ1279 半平面交模板 题意 以顺时针或逆时针顺序给定一个多边形,求该多边形核的面积 解法 半平面交要求边要按逆时针顺序,首先利用叉积判断给定点顺序为逆时针还是顺时针,然后按逆时针方向建边,最后跑半平面交算法,得到多边形的核。对核中相邻边求交点,利用叉积计算面积。 代码: #include < 阅读全文
posted @ 2020-08-05 10:31 UCPRER 阅读(163) 评论(0) 推荐(0)
摘要:计算几何基础模板 基础类型 const double eps = 1e-8; const double PI=acos(-1.0); int sgn(double x) { if(fabs(x) < eps) return 0; if(x < 0) return -1; return 1; } st 阅读全文
posted @ 2020-05-11 10:30 UCPRER 阅读(199) 评论(0) 推荐(0)