1

我正在尝试以 f(x) 形式实现三次贝塞尔曲线(四点)。显然贝塞尔曲线不是完美的函数,但如果最后两个点在第一个点和第二个点之间的正方形内,那么它们就是。我的数学真的不是很好——我几乎不了解正常贝塞尔曲线的实现,我不知道如何或是否可以将事物等同起来以获得这样的函数。即 y = f(x)。

话虽如此,我不一定需要贝塞尔曲线,我只需要一条从一个点到另一个点的曲线,我可以在其中定义两个点的渐变。我试图弄乱数学来获得这样的函数,并且我设法获得了一个以适当的梯度而不是适当的高度驱动的函数。

y = m1*x^2 / 2w + w(m1 - m2*x/2)

这个函数有 (0,0) 梯度 = m1

和 (w, y) 梯度 = m2

问题是我不知道如何将两点之间的高度带入方程式。我有另一个方程的方法,其中新函数是 f(x) * h / f(w),但在这种情况下,它会改变相关点的梯度。

4

1 回答 1

1

贝塞尔样条是t控制点的参数函数(在三次贝塞尔样条的情况下为四个)

P(t) = f(t, P1, P2, P3, P4)

更准确地说,对于 2D 案例:

    x(t) = (1 - t)^3*x1 + 3*(1 -  t)^2*t*x2 + 3*(1 -  t)*t^2*x3 + t^3*x4
    y(t) = (1 - t)^3*y1 + 3*(1 -  t)^2*t*y2 + 3*(1 -  t)*t^2*y3 + t^3*y4

哪里t in [0, 1]

很难通过 x(t) 来表达 y(t),因为它在一般情况下是多值函数。

于 2012-09-03T10:16:05.267 回答