我有多边形定义了它们的顶点,我需要计算它们的联合和交集的区域。最令人沮丧的是它是在Mapping Toolbox中实现的,但是我不能买它。有谁知道如何制作快速算法来计算它? 感谢您的时间。
答案 0 :(得分:3)
你只需要找到交叉区域;从那里可以轻而易举地获得工会的领域。来自FEX的PolygonIntersection包可能很有用。
答案 1 :(得分:1)
我会这样做:
得到的顶点集应构成多边形的并集。
对于交点,您只需删除 S 中多边形1和2 之外的所有顶点(在第三步中)。
(你可以在其他地方查找点交叉点和“内部多边形” - 检查; - )
答案 2 :(得分:-1)
我们的想法是将每个交叉边缘分成四个部分,并用这些部分形成一个新的多边形。当你想要联合时,取两个外边。如果你想要交叉,那就拿两个内边缘。
答案 3 :(得分:-1)
我找到了多边形的交点,并为交叉/合并任务添加了多边形内/外的顶点(检查多边形1的任何顶点是否位于多边形2内,反之亦然,使用'inpolygon')。然后将所有点转换为极坐标,其中心在矩阵的平均坐标中并按角度排序,以便现在它们形成连续的闭合轮廓。知道这一点很容易使用'polyarea'找到交叉点/联合区域。