将顺序点“跟踪”为贝塞尔曲线的算法

时间:2009-07-22 11:53:26

标签: tracing bezier

我在X,Y中有一系列连续的点,我想把它们“追踪”成一组贝塞尔曲线。是否可以使用任何开源位图到矢量跟踪算法或库?

3 个答案:

答案 0 :(得分:3)

这取决于您想要完成的任务。如果你想看到“最佳拟合”曲线,或者至少是粗略近似曲线,你应该使用b_spline。 b_spline将自己“置于”给定的点内。为了通过所讨论的点,我通常使用Catmull-Rom样条,当给定点1,2,3将通过点2时,其斜率等于点1和点之间的斜率。 3.

示例代码: http://willperone.net/Code/spline.php

算法说明: http://steve.hollasch.net/cgindex/curves/catmull-rom.html

答案 1 :(得分:1)

如果您希望曲线通过现有的一组点,您希望使用分段的b样条曲线而不是贝塞尔曲线。

网上有大量代码可以执行此操作。

答案 2 :(得分:0)

这是一个较老的问题,但我发现它是因为我需要一个算法来自动绘制坐标,并通过Google找到这个SO帖子。看起来对于这个特殊的问题,没有人提到Potrace(关于它的小维基百科文章here),这几乎是原始问题所要求的,并且是几个端口的开源正如描述其功能的论文可以免费获得。