首先,两个多边形的交只考虑两者的相对位置,那么可以将坐标平移到以圆心为原点。
再有,简单多边形的面积是可以通过求其
每条边与原点构成的有向三角形的面积和
在O(N)时间内求得的。于是考虑转化问题为:求出
圆与 所有边与原点构成的有向三角形 的交的面积和
正确性还是比较明显的。(或者说我不会证明。。。)
接下来就可以将问题化简为:求
一个顶点是原点的三角形与圆心在原点的圆的交面积。
这样一来需要讨论的情况就很少了。只需要讨论三角形的另两个顶点。
1. 两个顶点都在圆内。交面积即为有向三角形的面积。
2. 两个点都在圆外且两个顶点构成的线段不与圆相交(相切的情况也可并入)。交面积即为两个顶点与原点连线之间的扇形面积(同样是有向面积,圆心角有向,下面提到的所有面积都是有向面积ÿ