2011-03-20 178 views
4

考虑给予红线为点轮廓vectorshape算法

enter image description here

我正在寻找一种算法,以创建浓黑形状的轮廓(也为点的序列的序列),这样他们就可以干净地订购。轮廓还应尊重与自身的最小距离。

我可以用什么算法来达到这个目的?

+0

外形的标准是什么? – Apalala 2011-03-21 01:21:16

+0

它应该是一个干净的线条(轮廓的点不应位于图片中黑色区域的某处,但仅限于它的边框) – Mat 2011-03-21 01:32:29

+0

@Mat - 我认为@Apalala的问题是,红线和黑色边框?不知道它们是如何相关的,就不可能定义一个算法来从另一个中生成一个算法。 – 2011-03-21 04:28:11

回答

2

您需要两种类型的offsetting algorithms

  1. 偏移在两个方向的曲线,产生轨道
  2. 偏移闭合曲线向内,以产生一个或多个较小的封闭多边形。

设r为到红线的距离,b为黑线/轨道之间墙壁的所需厚度。

  • 使用算法1将红线偏移r。这可能产生重叠自身的轨迹,即具有“斑点状”区域。
  • 使用算法2将红线向内偏移。使用二进制搜索来查找形状分裂为两条或消失的距离d。如果d> b,则向内偏移d-b以产生第二个区域。否则算法失败。
  • 从第一个减去第二个区域。