gpt4 book ai didi

vb.net - 三次贝塞尔曲线-给定X可获得Y

转载 作者:行者123 更新时间:2023-12-04 01:43:05 25 4
gpt4 key购买 nike

我有三次贝塞尔曲线,其中给出了第一个点和最后一个点(即P0(0,0)和P3(1,1))。
其他两点的定义如下:cubic-bezier(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)


然后对于 t中的任何 [0,1],您会在坐标给出的曲线上得到一个点

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值,则需要找到 t中的哪些 [0,1]值对应于曲线上的该点,然后使用这些 t值来找到 y坐标。

在上面的 X(t)公式中,将左侧设置为 x值,然后插入 X0X1X2X3。这将为您提供变量 t的三次多项式。您可以为 t解决此问题,然后将该 t值插入 Y(t)公式以获得 y坐标。

解决 cubic polynomial的过程很棘手,但是可以通过使用一种解决三次多项式的方法来仔细完成。

关于vb.net - 三次贝塞尔曲线-给定X可获得Y,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8217346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com