找到曲线通过N点的贝塞尔控制点

时间:2011-10-10 16:24:16

标签: bezier points curve curve-fitting

考虑以下很好的解决方案,找到通过4个点的曲线的立方Bézier控制点:

How to find control points for a BezierSegment given Start, End, and 2 Intersection Pts in C# - AKA Cubic Bezier 4-point Interpolation

我想知道,如果为了使Bézier曲线通过N个点而对此有直接的延伸,对于N> 2可能N≤20?

2 个答案:

答案 0 :(得分:14)

这是一个非常古老的问题,但我将此留给那些将来有同样问题的人。

@divanov已经提到,对于N> 4,没有Bezier曲线通过N个任意点。

我认为OP正在询问如何计算控制点以连接多条贝塞尔曲线,以生成一条看起来平滑的曲线。

此pdf将向您展示如何计算控制点:http://www.math.ucla.edu/~baker/149.1.02w/handouts/dd_splines.pdf

我在Square的这篇文章http://corner.squareup.com/2012/07/smoother-signatures.html中找到了关于它们如何呈现通过鼠标绘制签名的所有采样点的平滑曲线的信息。

答案 1 :(得分:2)

通常,没有贝塞尔曲线通过N个任意点,其中N> 1。 4.应该考虑曲线拟合以最小化计算的贝塞尔曲线和给定的N个数据点之间的最小平方误差。例如,here

讨论了这个问题