F(x)形式的Bezier曲线

时间:2012-09-01 14:34:16

标签: function graph bezier

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

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

  

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

此函数的(0,0)with gradient = m1

和(w,y)gradient = m2

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

1 个答案:

答案 0 :(得分:1)

Bezier样条曲线是t和控制点的参数函数(在三次Bezier样条曲线的情况下为四个)

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)表示为多值函数。