【发布时间】:2011-01-30 00:47:19
【问题描述】:
我想将某物移动一段固定距离。但是在我的系统中存在惯性/阻力/负加速度。我正在使用这样的简单计算:
v = oldV + ((targetV - oldV) * inertia)
在多个帧上应用它会使运动“加速”或衰减,例如:
v = 10 + ((0 - 10) * 0.25) = 7.5 // velocity changes from 10 to 7.5 this frame
所以我知道我想要行进的距离和加速度,但不知道将我带到那里的初始速度。或许更好的解释是我想知道击打台球的难度,使其停在某个点上。
我一直在研究运动方程 (http://en.wikipedia.org/wiki/Equations_of_motion),但无法确定适合我的问题的正确方法是什么...
有什么想法吗?谢谢 - 我来自设计而非科学背景。
更新:Fiirhok 有一个固定加速度值的解决方案; HTML+jQuery 演示:
http://pastebin.com/ekDwCYvj
有没有办法用小数值或缓动函数来做到这一点?根据我的经验,这样做的好处是固定的加速度和基于帧的动画有时会超出最终点并且需要强制,从而产生轻微的捕捉故障。
【问题讨论】:
-
Compiler error: Line #4: Missing ')'. -
这个等式无论如何都不正确。你是从哪里想到这个的?
-
在我看来,这更像是mathoverflow.net 的话题。要修复编译器错误,请删除左括号之一。你有两个,但只关闭一个。
-
@senfo:mathoverflow 用于研究级数学。
-
我在打电话,刚刚意识到编译器错误是@KennyTM 的评论。 StackOverflow 需要更好的移动浏览器支持! ;-)
标签: drag motion easing-functions