这取决于你想实现什么。如果你想看到“最佳拟合”曲线,或者至少一个粗略的近似值,你应该使用 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
这是一个较旧的问题,但我找到它是因为我需要一个自动跟踪坐标的算法,当它们被绘制时,并通过谷歌在此SO帖子上找到了此信息。看起来对于这个特定的问题,没有人提到Potrace(关于它的小维基百科文章在这里),这几乎就是原始问题所要求的,并且是开源的,有多个端口以及描述其功能的论文可供免费使用。