旋转卡壳凸包间最小距离
来源:互联网 发布:数据挖掘技术与应用 编辑:程序博客网 时间:2024/04/27 19:03
Solution
输入两个分别有 m 和 n 个顺时针给定顶点的凸多边形 P 和 Q
计算 P 上 y 坐标值最小的顶点(称为 yminP ) 和 Q 上 y 坐标值最大的顶点(称为 ymaxQ)。
为多边形在 yminP 和 ymaxQ 处构造两条切线 LP 和 LQ 使得他们对应的多边形位于他们的右侧。 此时 LP和 LQ 拥有不同的方向, 并且 yminP 和 ymaxQ 成为了多边形间的一个对踵点对。
计算距离(yminP,ymaxQ) 并且将其维护为当前最小值。
顺时针同时旋转平行线直到其中一个与其所在的多边形的边重合。
1.只有一条线与边重合, 那么只需要计算“顶点-边”对踵点对和“顶点-顶点”对踵点对距离。 都将他们与当前最小值比较, 如果小于当前最小值则进行替换更新。
2.两条切线都与边重合, 那么情况就更加复杂了。 如果边“交叠”, 也就是可以构造一条与两条边都相交的公垂线(但不是在顶点处相交), 那么就计算“边-边”距离。 否则计算三个新的“顶点-顶点”对踵点对距离。 所有的这些距离都与当前最小值进行比较, 若小于当前最小值则更新替换。
重复执行步骤4和步骤5, 直到新的点对为(yminP,ymaxQ)。
输出最大距离。
Tips
1.点乘与叉乘
2.计算几何长到怀疑人生==
Code
AC
0 0
- 旋转卡壳凸包间最小距离
- poj3608 凸包间最近距离 旋转卡壳
- poj 3608 旋转卡壳求两凸包间的最近距离
- POJ 3608 求两凸包的最小距离 (凸包+旋转卡壳)
- 旋转卡壳求凸包间的最短距离 POJ 3608
- POJ 3608 旋转卡壳求解凸包间的最短距离
- 旋转卡壳---凸多边形间最小距离
- poj 3608 Bridge Across Islands(旋转卡壳求俩凸包间最小间距)
- 旋转卡壳——凸多边形间最小距离
- 旋转卡壳——凸多边形间最小距离
- poj3608(旋转卡壳求两凸包间的最短距离)
- Poj2187(最远点对距离)凸包+旋转卡壳
- 旋转卡壳--凸包之间的最大距离
- [计算几何][凸包][旋转卡壳] 最远距离点对
- poj 3608 Bridge Across Islands, 旋转卡壳求凸多边形间最小距离
- poj 5251(凸包 旋转卡壳)最小矩形面积
- 【BZOJ1185】最小矩形覆盖 计算几何 凸包 旋转卡壳
- 最小矩形覆盖(凸包旋转卡壳)
- Shiro简介
- ConStraintLayout 动画|动态Constraints|用Java控制UI[第三部分]
- 最少步数
- Android学习笔记(二十一):调试蓝牙4.0遇到的问题
- PHP优化#单节点的优化
- 旋转卡壳凸包间最小距离
- 文章标题
- jquery fullpage 插件增加头部和版权的方法
- python操作mysql数据库类
- es6学习笔记之Promise
- 跟小博老师一起学Servlet ——Servlet之会话跟踪
- JAVA面向对象知识点总结
- C++学习记录1--include<iostream.h> error C1083
- Image圆角