此代码的最终目标是确保客户定义的形状实际上可以由我们的……呃,机器加工。为此,我们将指定的形状向内偏移钻头的半径,然后向外退回相同的量,从而将任何太细而无法实际装入钻头的部分四舍五入。对于多边形偏移,我们使用AngusJohnson的Clipper库,版本5.1.6(c++)。但是从图片中可以看出,这会产生一些意想不到的形状。在图片中,我使用ClipperLib::OffsetPolygon通过-radius偏移原始形状(绿色,大部分被后来的绘图覆盖)以获得黄色形状,然后通过半径偏移以获得红色形状.理论上,对于链接中所示的情况,这应该会导致红色形状与绿色形状完全匹配。导致上述结果发生的