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