三次贝塞尔曲线 - 给定 X 得到 Y
我有一条三次贝塞尔曲线,其中给出了第一个点和最后一个点(即 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 来进行转换)
我设法挖掘这个:给定 x 三次贝塞尔曲线的 y 坐标 ,但我不明白 xTarget 代表什么。
哦,这也不是任何家庭作业,我只是对互联网上没有关于三次贝塞尔曲线的可理解的东西感到有点恼火。
I have a cubic bezier curve where the first and last points are given (namely P0(0,0) and P3(1,1)).
The other two points are defined like this: cubic-bezier(0.25, 0.1, 0.25, 1.0) (X1, Y1, X2, Y2, also those values must not be smaller or larger than 0 or 1, respectively)
Now what would I have to do to get the Y coordinate for a given X, assuming there's only one? (I know that under certain circumstances there can be multiple values, but let's just put them aside. I'm not doing rocket science over here, I just want to be able to get Y multiple times per second to do transitions)
I managed to dig up this: y coordinate for a given x cubic bezier, but I don't understand what xTarget stands for.
Oh, also this is no homework whatsoever, I'm just a bit annoyed at the fact that there's no comprehensible stuff about cubic bezier curves on the internet.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果你有
那么对于
[0,1]
中的任何t
你会得到坐标给定的曲线上的一个点如果你给定一个
x
> 值,那么您需要找到[0,1]
中的哪些t
值对应于曲线上的该点,然后使用这些t
值来查找y
坐标。在上面的
X(t)
方程中,将左侧设置为您的x
值,并代入X0
、X1
>、X2
、X3
。这给你留下了一个带有变量t
的三次多项式。您求解t
,然后将该t
值代入Y(t)
方程以获得y
协调。求解三次多项式很棘手,但可以通过仔细使用其中一种方法来求解三次多项式来完成多项式。
If you have
Then for any
t
in[0,1]
you get a point on the curve given by the coordinatesIf you are given an
x
value, then you need to find whicht
values in[0,1]
correspond to that point on the curve, then use thoset
values to find they
coordinate.In the
X(t)
equation above, set the left side to yourx
value and plug inX0
,X1
,X2
,X3
. This leaves you with a cubic polynomial with variablet
. You solve this fort
, then plug thatt
value into theY(t)
equation to get they
coordinate.Solving the cubic polynomial is tricky but can be done by carefully using one of the methods to solve a cubic polynomial.
P0 是曲线中 t=0 的第一个点
P3 是曲线中 t=1 的最后一个点
P1 和 P2 是您的控制点。
P0 is your first point in the curve where t=0
P3 is your last point in the curve where t=1
P1 and P2 are your control points.