如何创建没有自交叉的平行折线?

时间:2010-08-08 13:59:40

标签: math intersection polyline

为现有折线创建平行折线的简单算法很简单:您可以计算每个顶点的法线(作为线段法线的平均值),并使用法线替换您想要的任何数量的顶点。

但是,当我尝试在弯曲折线上使用此算法时会出现图形问题,这是一系列形成弧的点。当我创建与圆弧折线的平行线时,一切都很好,直到我增加足够的距离,投影顶点通过它们的法线创建一条折线,从一个顶点前进到另一个顶点实际上反向移动创建一个自相交。

如何有效地从平行折线中删除这些顶点?我想比较片段的方向:如果生成的片段不平行,则意味着我已达到平行折线与自身相交的点。但是,对于小段(弯曲多段线将生成更小的段)或最初具有退化顶点(一个顶点等于下一个顶点)的折线,这不能很好地工作。

1 个答案:

答案 0 :(得分:2)

平行折线在图形圆中称为偏移折线。看起来像生成偏移多段线而没有简并几何构件的方法是使用Straight Skeleton算法。

我还发现了一篇名为An offset algorithm for polyline curves的有趣论文。