• 计算几何:凸包


    凸多边形:任意两个顶点的连线都在多边形内部,这样的多边形称为凸多边形

    凸包的定义:一个凸多边形的顶点的集合

    求凸包的一般形式:给出一个点集,求出覆盖所有点的最小凸多边形

    Graham算法:
    时间复杂度:O(nlogn)极角排序耗时
    先取出一个端点,必须为凸包上的一个点,取最下且最右的点即可
    以端点进行极角排序,利用叉积的性质,按顺/逆时针排序,同一线上的点从远到近排
    以下以顺时针排序为例进行Graham排序:
    先将前两个端点入栈,后续端点按如下判断,如果栈顶两个点和下一个点顺时针排列,则入栈并继续;如果不是则将栈顶元素出栈,直到最后顺时针排列,将下一个点入栈,最后存在栈里的点就是凸包的集合。

    多边形面积(不限凹凸):
    已知任意一个n边形都能分解为(n-2)个三角形,然而该算法既低效,又难以实现。
    计算几何当然是越抽象的算法越出色,计算所有相邻边的叉积之和的绝对值,再除二,即为多边形面积。
    这里涉及到叉积的几何意义,叉积的值可以认为是由两条边形成的平行四边形面积,当然这个面积是存在正负的(在凹多边形中),实际画图示例的话,发现正负抵消恰好就是多边形面积。

    多边形相交求相交面积:
    求出多边形的交点,这是一个比较容易的过程,然后我们的思路可以分为两类:
    1.求相交多边形的点集,再求面积
    2.求出某个多边形不与另一个多变形相交部分的面积
    自己还没有做过这样的题,发现很多人都是说用2做,等以后用两个思路分别试一试看。

     稳定凸包:
    如果一个凸包加入一个新的点就能形成一个比原来大,并且经过原来所有点的凸包,就是稳定凸包。

    所以稳定凸包就是每条边上都至少有三个点的凸包。

  • 相关阅读:
    「考试」省选27
    「考试」省选26
    「考试」省选25
    $dy$讲课总结
    「笔记」$Min\_25$筛
    「考试」省选24
    「总结」多项式生成函数例题(4)
    「总结」多项式生成函数相关(4)
    「考试」省选23
    「总结」后缀3
  • 原文地址:https://www.cnblogs.com/qq936584671/p/7881421.html
Copyright © 2020-2023  润新知