创建与现有多段线平行的多段线的简单算法很简单:您可以计算每个顶点的法线(作为线段法线的平均值)并使用法线以您想要的任何数量替换顶点。
但是,当我尝试在曲线折线上使用此算法时会出现图形问题,即形成弧的一系列点。当我创建与圆弧多段线的平行线时,一切都很好,直到我增加足够的距离,投影顶点通过它们的法线创建一条多段线,其中从一个顶点到另一个顶点实际上以相反的方向移动,从而创建自相交。
如何有效地从平行折线中删除这些顶点?我虽然比较了线段的方向:如果生成的线段不平行,这意味着我已经达到了平行折线与自身相交的点。但是,这对于小段(弯曲的多段线将生成更小的段)或最初具有退化顶点(一个顶点等于下一个顶点)的多段线效果不佳。
最佳答案
平行多段线在图形圆圈中称为偏移多段线。看起来像使用 Straight Skeleton 算法生成偏移折线而没有退化几何工件的方法。
我还发现了一篇关于该主题的有趣论文,名为 An offset algorithm for polyline curves 。
关于math - 如何创建没有自相交的平行多段线?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3434572/