我试图以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),但在这种情况下,它改变了所讨论的点的梯度。
答案 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)表示为多值函数。