如果要创建具有尖点的曲线,则问题非常棘手。我可以想到一种启发式方法来创建一组初始控制点。对于第一个控制点,当从距离到第一个锚点进行排序时,请尝试获取可用的点的前1/3。排序是必要的,否则,您可能会无所适从。取该点的1/3并进行线性最小二乘拟合,这具有线性时间复杂度。这为您提供了曲线起飞的方向。对最后1/3执行相同的操作,您将获得“着陆”方向。
使用那些线性解决方案来创建指向远离锚点的向量,然后尝试使这些向量变长和变短,以尽量减少误差。控制点将沿着来自锚点的向量。
这里还有其他一些想法(我只能发布两个链接!):
物理论坛问题
贝塞尔曲线拟合论文



