如何实现三次贝塞尔函数以获取指定T值对应的加速度
基于三次贝塞尔曲线计算指定归一化时间T的加速度
我希望在Delphi(或其他编程语言)中实现一个函数,基于三次贝塞尔曲线计算给定归一化时间T(取值范围0到1)对应的加速度,目标是得到一个代表该T值下加速度的单精度浮点数。
三次贝塞尔曲线的定义如下:
𝐵(𝑇)=(1-t)^3*P0 + 3*(1-t)^2*t*P1 + 3*(1-t)*(t^2)*P2 + (t)^3*P3
其中:P0, P1, P2, P3为控制点。
例如,曲线cubic-bezier(0.42, 0, 0.58, 1)的控制点为:
P0=(0,0) (起始点) P1=(0.42,0) P2=(0.58,1) P3=(1,1) (终点)
问题
我存在一个困惑:由于P0、P1、P2、P3均为包含X和Y值的点,贝塞尔函数𝐵(𝑇)的结果也会是一个点(而非单浮点数)。如何从中获取代表指定T值下加速度的单浮点数?
我的目标是生成一张类似下图的图表,X轴为时间,Y轴为加速度(或进度)。
内容的提问来源于stack exchange,提问作者zeus
相关产品推荐
相关产品推荐

