2

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

x = ((KeyFrame2.x - KeyFrame1.x)/duration)*time

我的理解是,两个关键帧之间的差异除以持续时间为您提供了每个时间单位(通常是 1 帧)有多少测量单位(主要是像素),所以您只需将该值乘以距离虽然时间线是

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

这个我理解,但是我也被告知一个它用于曲线路径,比如一个球向前弹跳,关键帧是当它撞到地面时,当它看到它的反弹时,这个就是我所拥有的忘记了,我不知道我的笔记到底在哪里

我要问的是用于计算具有这样路径的对象的 x 和 y 位置的算法,我要的是代码相互依赖的数学算法,我想要做的是动画一些球体将在屏幕中心圈出一个徽标,我已经让代码中的对象移动但是我需要调整关键帧之间的计算

注意:即使我不要求代码,这些算法也用于动画编程,因此我的问题通常与编程有关

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

4

2 回答 2

1

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

x = a * y^2 + b

对于某些智能力控制的运动,基于高阶多项式或贝塞尔曲线的曲线拟合更为合适。谷歌是你的朋友。

于 2012-07-30T00:00:10.440 回答
0

如果你知道你有圆周运动,你可以圈出方程来预测下一个位置或在两者之间进行插值。由于圆可以由 3 个点唯一定义,因此您需要 3 个点在其间进行插值。这是有道理的,只有 2 个点你甚至不知道它是凸圆还是凹圆。

根据您的点将具有的运动,您选择至少与您的运动相似的方程。在大多数情况下,您指出的线性方程就足够了。

于 2012-07-30T00:23:18.567 回答