我需要一种方法,可以让我在给定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 )

如果是这种情况。让我知道,我可以详细说明您需要解决的问题。

10-04 22:12