如何计算两个多边形的不相交面积?

How to calculate the non-intersecting area of two polygons?

有没有算法可以计算出任意两个多边形不重叠部分的面积?我找不到任何可以概括两个任意多边形的东西。

Vatti's clipping algorithm 可以处理任意多边形并允许找到 "xor" 裁剪多边形。然后你可以计算结果的面积。

此算法用于 Clipper library(开源,绑定到某些编程语言)

多边形的面积用鞋带公式很简单,非重叠面积是各个面积之和减去相交面积

相交多边形必须明确计算,例如使用 Weiler & Atherton 裁剪算法。 https://en.wikipedia.org/wiki/Weiler%E2%80%93Atherton_clipping_algorithm.

请注意,实现并不简单。