我需要一种方法,可以让我在给定x坐标的情况下在三次贝塞尔曲线上找到Y坐标。
我遇到过很多地方,告诉我将其视为三次函数,然后尝试查找根,据我所知。但是,三次贝塞尔曲线的等式是(对于x坐标):X(t) = (1-t)^3 * X0 + 3*(1-t)^2 * t * X1 + 3*(1-t) * t^2 * X2 + t^3 * X3
令我感到困惑的是(1-t)
值的增加。例如,如果我用一些随机数填写X值:400 = (1-t)^3 * 100 + 3*(1-t)^2 * t * 600 + 3*(1-t) * t^2 * 800 + t^3 * 800
然后重新排列它:800t^3 + 3*(1-t)*800t^2 + 3*(1-t)^2*600t + (1-t)^3*100 -400 = 0
我仍然不知道(1-t)
系数的值。当(1-t)
仍然未知时,我应该如何求解方程式?
最佳答案
表示三次贝塞尔曲线的常见方法有三种。
第一个x作为t的函数
x(t) = sum( f_i(t) a_i )
= (1-t)^3 * x0 + 3*(1-t)^2 * t * x1 + 3*(1-t) * t^2 * x2 + t^3 * x3
其次,y是x的函数
y(x) = sum( f_i(x) a_i )
= (1-x)^3 * y0 + 3*(1-x)^2 * x * y1 + 3*(1-x) * x^2 * y2 + x^3 * y3
前两个在数学上是相同的,只是对变量使用了不同的名称。
根据您的描述判断,“在三次贝塞尔曲线上找到Y坐标,并为其指定x坐标”。我猜想您在使用第二个方程式时遇到了一个问题,正在尝试重新排列第一个方程式以帮助您解决它,就像您应该在第二个方程式中一样。如果是这种情况,则无需重新排列或求解-只需插入x值即可获得解决方案。
您可能有第三种情况的方程式,这是丑陋而困难的情况。
这是x和y参数都是第三个变量t的三次方贝塞尔曲线。
x(t) = sum( f_i(t) x_i )
y(t) = sum( f_i(t) y_i )
如果是这种情况。让我知道,我可以详细说明您需要解决的问题。