19

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

如何在 C# 中找到给定开始、结束和 2 个交叉点的 BezierSegment 的控制点 - AKA Cubic Bezier 4-point Interpolation

我想知道,是否有一个直接的扩展来使贝塞尔曲线通过 N 个点,对于 N > 2 并且可能是 N ≤ 20?

4

2 回答 2

23

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

@divanov 提到,对于 N > 4,没有通过 N 个任意点的贝塞尔曲线。

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

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

我在 Square 的这篇文章https://developer.squareup.com/blog/smoother-signatures/中发现了它们如何渲染平滑曲线,该曲线穿过鼠标绘制签名的所有采样点。

于 2013-08-26T19:04:49.133 回答
2

一般来说,没有贝塞尔曲线通过 N 个任意点,其中 N > 4。应该考虑曲线拟合以最小化计算的贝塞尔曲线和给定 N 个数据点之间的最小二乘误差。例如,在这里讨论。

于 2012-08-19T18:18:43.370 回答