我会这样做: 让S成为两个多边形的顶点集合。 对于多边形1中的每条边e1 对于多边形2中的每条边e2 如果e1与e2相交 将交点添加到S中 删除S中在多边形1或2内部的所有顶点。 得到的顶点集合应该组成多边形的并集。 对于交集,只需在第三步中删除S中在多边形1和2之外的所有顶点。 (您可以在其他地方查找点交集和“内部多边形”检查;-) 两条直线的交点 确定一个点是否在多边形内部
我找到了我的多边形的交点,并添加了在交叉/并集任务中位于多边形内部/外部的顶点(使用“inpolygon”检查多边形1的任何顶点是否位于多边形2内部,反之亦然)。然后,所有点都被转换为以矩阵平均坐标为中心的极坐标,并按角度排序,这样它们现在形成了连续闭合的轮廓。知道这一点后,使用“polyarea”函数很容易找到交叉/并集区域的面积。