algorithm - 确定某物的 x 和 y 以使其遵循 2 个关键帧之间的曲线的算法是什么?

标签 algorithm math animation platform-independent

回到 uni 我记得有一种算法用于计算 2 个关键帧的 x 和 y 值之间的点的 x 和 y 位置,我知道直线的那个

x = ((KeyFrame2.x - KeyFrame1.x)/持续时间)*时间

我的理解是,2 个关键帧之间的差异除以持续时间可以得出每个时间单位(通常为 1 帧)有多少个测量单位(主要是像素),因此您只需乘以该值时间线有多远

即。 x = ((KeyFrame2.x - KeyFrame1.x)/持续时间)*时间
x = ((10 - 0)/10)*3
x = (10/10)*3
x = 1*3
x = 3(在 3 个时间单位后,对象的位置将从 KeyFrame1 沿 x 轴 +3 像素)

这个我理解,但是有人告诉我一个它用于曲线路径,比如一个球向前弹跳,关键帧是当它撞到地面时以及当它处于反弹的顶点时,这就是我已经忘记了,我也不知道我的笔记放哪了

我要问的是用于计算具有这样路径的对象的 x 和 y 位置的算法,我要的是代码相互依赖的数学算法,我想做的是为数字设置动画球体将环绕屏幕中心以获得 Logo ,我已经在代码中移动了对象但是我需要调整关键帧之间的计算

注意:虽然我不是要代码,但这些算法用于动画编程,因此我的问题与一般编程有关

注意 2:KeyFrame2.x 和 KeyFrame1.x 不是代码,我将关键帧视为一个类的实例,它包含诸如 x、y、z、前一帧的持续时间等值

最佳答案

您要求的不是算法,而是方程式。您可以根据要模拟的运动类型使用各种方程式;例如,在重力作用下的弹丸运动可以用抛物线来描述——形式为

的曲线
x = a * y^2 + b

对于一些智能力控制的运动,基于高阶多项式或贝塞尔曲线的曲线拟合更为合适。 Google 是您的 friend 。

关于algorithm - 确定某物的 x 和 y 以使其遵循 2 个关键帧之间的曲线的算法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11713986/

相关文章:

java - 对于 2 个数字,如何测试一个是否是另一个的整数幂?

algorithm - 我应该如何计算算法中的操作次数?

c++ - 二叉树的示例实现不适用于大量值

algorithm - 可执行文件中包含的排序算法是否被信号 11 命令终止?

Javascript计算浮点值错误

javascript - Velocity.js:第一组对象完成后对第二组对象进行动画处理

Android:恢复带有动画 View 的 Activity 后,如何启动应用于 ImageView 的无限动画?

c++ - 简单的计算给出了错误的结果

javascript - JavaScript 中更好的随机函数

Android 使用 ImageView 淡入淡出