您需要两种偏移算法: 在两个方向上偏移曲线以产生轨道。 向内偏移封闭曲线以产生一个或多个较小的封闭多边形。 设r为到红线的距离,b为黑线/轨道之间所需的墙壁厚度。 使用算法1将红线偏移r。这可能会产生重叠的轨道,即具有“斑点状”区域。 使用算法2向内偏移红线。使用二分搜索找到使形状分裂成两个或消失的距离d。如果d > b,则向内偏移d - b以产生第二个区域。否则,算法失败。 从第一个区域中减去第二个区域。