旋转卡壳
文章平均质量分 61
czyhbo
这个作者很懒,什么都没留下…
展开
-
旋转卡壳3——两凸包间距离 (POJ3608 Bridge Across Islands 详讲)
一、引言讲完了凸包,一个凸包间的距离问题,那么如果有两个凸包,求最小(或最大)距离怎么求呢?二、思路说白了,我们是求图形与图形之间的距离,我们可以转换成线段与线段之间的距离,再转换成点与线段之间的距离,最后转换成点与点之间的距离。1.点与点的距离 不解释2.点与线段的距离点与线段一共有如上三种位置关系,明显看出条件就是A与BC的角度是否是钝角,这里我们用点积判断。double point_to_line(Point A,Point B,Point C){ if(dist(B,C)&原创 2021-03-28 16:12:49 · 567 阅读 · 0 评论 -
旋转卡壳2——凸包距离 (POJ2187Beauty Contest 详讲)
POJ2187一、引言上节的POJ2187,是求一个凸包中的最远的两个点的距离,用暴力,O(n²)也能过,但是没有用到旋转卡壳。这节就来看看怎么用旋转卡壳来卡这个最远距离。二、找対踵点这个最远的距离肯定是在凸包上,这是毋庸置疑的,我们首先建立好凸包后,然后检索凸包的点,寻找这个点的対踵点(即,距离这个点最远的点):用什么方法寻找呢?这里借助了三角形的面积,具体如下首先从检索点0※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※(开始寻找対踵点的时候是从0点的右边一个点即点原创 2021-03-28 15:44:30 · 284 阅读 · 0 评论 -
旋转卡壳1——凸包
一、前驱知识:1.叉积:A×B A.x*B.y-A.y*B.x >0 A在B的顺时针方向 <0 A在B的逆时针方向2.点积:A·B A.x*B.x+A.y+B.y3.两点之间距离: 可以用点积方便的求解,即: sqrt(A.x*A.x+A.y*A.y);4.计算几何精度问题: dcmp函数,直接看注解5.计算几何问题,一般把他们打包在一起,形成以下代码:代码:struct Point{ double x,y; Point(原创 2021-03-28 14:59:46 · 225 阅读 · 0 评论