考虑以下通过四个点的立方Bézier曲线控制点的好方法:
如何在C#中找到BezierSegment的控制点,给定起点、终点和2个交点 - AKA Cubic Bezier 4点插值
我想知道,如果要让Bézier曲线通过N个点,是否有一个直接的扩展方法,其中N > 2,可能N ≤ 20?
考虑以下通过四个点的立方Bézier曲线控制点的好方法:
如何在C#中找到BezierSegment的控制点,给定起点、终点和2个交点 - AKA Cubic Bezier 4点插值
我想知道,如果要让Bézier曲线通过N个点,是否有一个直接的扩展方法,其中N > 2,可能N ≤ 20?
这是一个非常古老的问题,但是我将其留在这里,供将来有同样问题的人参考。
@divanov提到,对于N>4的任意点,不存在通过它们的贝塞尔曲线。
我认为OP想知道如何计算控制点以连接多个贝塞尔曲线,以生成看起来平滑的单一曲线。
这份pdf将向您展示如何计算控制点: http://www.math.ucla.edu/~baker/149.1.02w/handouts/dd_splines.pdf
我从Square的这篇文章https://developer.squareup.com/blog/smoother-signatures/中找到了这份pdf,他们介绍了如何渲染出经过鼠标签名所有采样点的平滑曲线。
通常情况下,不存在通过N个任意点的贝塞尔曲线,其中N > 4。应该考虑曲线拟合,以最小化计算出的贝塞尔曲线和给定的N个数据点之间的最小二乘误差。例如,在这里讨论了这个问题。