2012-09-01 148 views
0

我试图在f(x)形式中获得三次贝塞尔曲线(四点)实现。显然,贝塞尔曲线并不是完美的函数,但如果最后两点在第一点和第二点之间的正方形内,那么它们是。我的数学真的不怎么样 - 我几乎无法理解正常贝塞尔曲线的实现,我不知道如何或是否可以将它们等同起来以获得这样的函数。即y = f(x)。这就是说,我不一定需要贝塞尔曲线,我只需要一条从一点到另一点的曲线,我可以在这两点上定义渐变。我试图搞乱数学来获得这样一个功能,并且我设法得到了一个以适当的梯度驱动的功能,但却没有达到适当的高度。f(x)形式的贝塞尔曲线

Y = M1 * X^2/2W + W(M1 - 平方米* X/2)

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

和( w,y)gradient = m2

问题是,我无法弄清楚如何将两点之间的高度放入方程中。我有另一个方程的方法,其中新函数是f(x)* h/f(w),但是在这种情况下,它改变了所讨论的点的梯度。

回答

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]

由于一般情况下它是多值函数,所以很难表示y(t)到x(t)。