vb.net – 立方贝塞尔曲线 – 给定给定X的Y

前端之家收集整理的这篇文章主要介绍了vb.net – 立方贝塞尔曲线 – 给定给定X的Y前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个三次贝塞尔曲线,其中给出了第一个和最后一个点(即P0(0,0)和P3(1,1)).
其他两点如下定义:立方贝塞尔(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是棘手的,但可以通过仔细使用一种方法解决三次多项式来完成.

猜你在找的VB相关文章