algorithm - 轮廓矢量形状算法

标签 algorithm vector-graphics

考虑将红线作为点序列给出

enter image description here

我正在寻找一种算法来创建粗黑形状的轮廓(也作为一系列点),以便它们整齐有序。轮廓也应遵守与自身的最小距离。

我可以使用什么算法来实现这一点?

最佳答案

您将需要两种类型的 offsetting algorithms :

  1. 在两个方向上偏移曲线以产生轨迹
  2. 向内偏移闭合曲线以生成一个或多个更小的闭合多边形。

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

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

关于algorithm - 轮廓矢量形状算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5372494/

相关文章:

algorithm - 深度优先搜索会产生冗余吗?

arrays - 我应该使用 .select 还是 .each 将哈希数组排序为 3 个单独的数组? ( ruby )

actionscript-3 - 不使用 hittest 对象的 AS3 视线。

java - 为什么在 Java Applet 中使用 vector 坐标时多边形会变形?

c# - 在曲线路径上绘制形状或图像

wolfram-mathematica - ContourPlot3D 中的重叠网格线

java - 在没有 Arrays.sort 的 Java 中查找数组列表中的最小整数值

iphone - SVGKit - Illustrator SVG 曲线从相对到绝对

javascript - 无法使用传单渲染矢量切片 (.mbtiles) 文件

algorithm - 立方体上的等距点