最近遇到一个需求,给定一个多边形(边与边可能相交),求这个多边形的轮廓线。
需要注意的是,轮廓线多边形内不能有空洞,使用的不是常见的非零绕数规则(nonzero)以及奇偶规则(odd-even)。...整体思路
计算多边形各边的交点,求出一个有多边形点和交点信息的邻接表。
从最下方的点开始,找出与其相邻节点中夹角最小的点保存到路径中,不断重复这个行为,直到点又回到起点位置。...1;
const right = (i + 1) % size;
adjList.push([left, right]);
}
return adjList;
}
需要求解的轮廓线多边形的点不一定是目标多边形上的点...// [某条线]: [到线起点的距离, 在 points 中的索引值]
// 如:{ '2-3', [[0, 2], [43, 5], [92, 3]] }
const map = new Map<string...代码实现:
// [某条线]: [到线起点的距离, 在 points 中的索引值]
// 如:{ '2-3', [[0, 2], [43, 5], [92, 3]] }
const map = new