将连续点转换为贝塞尔曲线的算法

5

我有一组X,Y坐标的连续点,希望将其转换为一组贝塞尔曲线。是否有任何开源的位图到矢量追踪算法或库可以用于此目的?

3个回答

4
这取决于你想实现什么。如果你想看到“最佳拟合”曲线,或者至少一个粗略的近似值,你应该使用 b 样条。b 样条将自己拟合在它所给出的点内部。对于穿过问题中的点,我通常会使用 Catmull-Rom 样条,当给定点 1、2、3 时,会以 1 和 3 点之间的斜率等于点 2 的斜率通过点 2。
示例代码: http://willperone.net/Code/spline.php 算法解释: http://steve.hollasch.net/cgindex/curves/catmull-rom.html

注意:您的示例代码链接不再指向有效页面。 - Saket

1
这是一个较旧的问题,但我找到它是因为我需要一个自动跟踪坐标的算法,当它们被绘制时,并通过谷歌在此SO帖子上找到了此信息。看起来对于这个特定的问题,没有人提到Potrace(关于它的小维基百科文章在这里),这几乎就是原始问题所要求的,并且是开源的,有多个端口以及描述其功能的论文可供免费使用。

1

如果你想让曲线通过一组现有的点,那么你应该使用分段B样条曲线而不是贝塞尔曲线。

网上有大量的代码可以实现这个功能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接