几何算法学习

来源:互联网 发布:框架户和端口户的返点 编辑:程序博客网 时间:2024/06/13 14:03
1.旋转卡壳
计算距离
 凸多边形直径(ok)
 凸多边形宽(ok)
 凸多边形间最大距离(ok)
 凸多边形间最小距离
外接矩形
 最小面积外接矩形(矩形的一条边必与原凸多边形一条边重合,利用2组平行线进行卡壳)
 最小周长外接矩形(最小周长外接矩形并非恒与最小面积外接矩形相同,不过因为都存在矩形的一条边必与原凸多边形一条边重合的性质,故,方法一样)
三角剖分
 洋葱三角剖分
 螺旋三角剖分
四边形剖分
 凸多边形属性
 合并凸包
 找共切线
 凸多边形交(因为一个结论(由Guibas提出)证明了多边形交点和和他们之间的桥是一一对应关系。所以利用桥来计算交点集,交点集与内部点行程了多边形的交)
 临界切线
 凸多边形矢量和
 最薄截面
 最薄横截带
2.凸包
另个增量算法:
Graham:取x小的点作为原点,同x取y小的,再对所有点进行极角排序(其实是个半平面,直接用叉积),最后做一遍扫描,栈形式维护凸包,如果新加入的点能够与倒数第二个点构成的直线包含掉倒数第一个点,那么删除倒数第一个点,直到不能删除为止,再把新点加入栈中。
Andrew:对所有点按照先x后y排序,接着如Graham一样做扫描,但是是做两次,一次向前,一次向后,详见白书
0 0