我有一个三次贝塞尔曲线,其中给出了第一个和最后一个点(即P0(0,0)和P3(1,1)).
其他两点如下定义:立方贝塞尔(0.25,0.1,0.25,1.0)(X1,Y1,X2,Y2,也不得分别为0或1以上)
现在我需要做什么才能获得给定X的Y坐标,假设只有一个? (我知道在某些情况下,可以有多个值,但是让我们把它们放在一边,我不是在这里做火箭科学,我只是希望能够每秒多次获得Y次数)
其他两点如下定义:立方贝塞尔(0.25,0.1,0.25,1.0)(X1,Y1,X2,Y2,也不得分别为0或1以上)
现在我需要做什么才能获得给定X的Y坐标,假设只有一个? (我知道在某些情况下,可以有多个值,但是让我们把它们放在一边,我不是在这里做火箭科学,我只是希望能够每秒多次获得Y次数)
我设法挖掘这个:y coordinate for a given x cubic bezier,但我不明白xTarget代表什么.
哦,这也是没有功课,我只是有点恼火的事实,在互联网上没有关于立方贝塞尔曲线的可理解的东西.
如果你有
P0 = (X0,Y0) P1 = (X1,Y1) P2 = (X2,Y2) P3 = (X3,Y3)
然后对于[0,1]中的任何一个t,您可以在坐标给出的曲线上得到一个点
X(t) = (1-t)^3 * X0 + 3*(1-t)^2 * t * X1 + 3*(1-t) * t^2 * X2 + t^3 * X3 Y(t) = (1-t)^3 * Y0 + 3*(1-t)^2 * t * Y1 + 3*(1-t) * t^2 * Y2 + t^3 * Y3
如果给出x值,则需要找出[0,1]中的哪个t值对应于曲线上的那个点,然后使用这些t值来找到y坐标.
在上面的X(t)方程中,将左侧设置为x值并插入X0,X1,X3.这样就可以使用变量t的三次多项式.你解决这个t,然后将该t值插入到Y(t)方程中得到y坐标.
解决cubic polynomial是棘手的,但可以通过仔细使用一种方法来解决三次多项式来完成.