为现有多段线创建平行多段线的简单算法很简单:您可以计算每个顶点的法线(作为线段法线的平均值)并使用法线以您想要的任意数量置换顶点。
但是,当我尝试在曲线折线上使用此算法时,会出现图形问题,即形成弧的一系列点。当我创建与圆弧多段线平行时,一切都很好,直到我增加足够的距离,使投影顶点通过它们的法线创建一条多段线,从一个顶点前进到另一个顶点实际上沿相反方向移动,从而创建一个自相交。
如何有效地从平行折线中删除这些顶点?我已经比较了线段的方向:如果生成的线段不平行,这意味着我已经达到了平行折线与自身相交的点。但是,这对于小段(弯曲的多段线将生成更小的段)或最初具有退化顶点(一个顶点等于下一个顶点)的多段线效果不佳。