【问题标题】:Bezier curve in f(x) formf(x) 形式的贝塞尔曲线
【发布时间】:2012-09-01 14:34:15
【问题描述】:

我正在尝试以 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),但在这种情况下,它会改变相关点的梯度。

【问题讨论】:

    标签: function graph bezier


    【解决方案1】:

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

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

    更准确地说是二维情况:

        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),因为它在一般情况下是多值函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-10
      • 2013-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多