最近遇到一个需求,给定一个多边形(边与边可能相交),求这个多边形的轮廓线。
需要注意的是,轮廓线多边形内不能有空洞,使用的不是常见的非零绕数规则(nonzero)以及奇偶规则(odd-even)。...整体思路
计算多边形各边的交点,求出一个有多边形点和交点信息的邻接表。
从最下方的点开始,找出与其相邻节点中夹角最小的点保存到路径中,不断重复这个行为,直到点又回到起点位置。...下面我们会以这个 “8” 字形多边形为例,进行讲解。...number][]>();
线段 1-2 初始化时,表为
{
‘1-2’: [
[0, 1], // 点 1,距离起点 0
[96, 2], // 点 2,距离起点 96
]
}
边...-2’: [
[0, 1], // 点 1,距离起点 0
[0, 4], // 点 4,距离起点 40
[96, 2], // 点 2,距离起点 96
]
}
另一条相交边