【发布时间】:2014-04-04 14:40:18
【问题描述】:
我想使用加速算法来改变假设飞行器的速度,以便在 2D 环境中移动它。例如:
positionX = positionX + (speed based on acceleration);
positionY = positionY + (speed based on acceleration);
我的问题是,如果我这样做,结果,假设速度为 50,将是位置 += 50,这是完全错误的,因为我不想使用速度作为 X 移动的数量轴上。我希望速度成为轴数的某种基础。 例如,如果假设速度为 50,而 50 速度意味着每次移动 3 X,那么这意味着
positionX + speed = positionX+3;
我想在代码中创建它以及将速度提高一个百分比的加速方法。 所以我的问题是如何将速度作为参考点。
【问题讨论】:
-
你需要速度和方向,或者只是简化这个并有两个 speex,一个用于 x 轴,另一个用于 Y 轴
-
我希望速度相同,我已经有一个方向方法,但我想根据速度更改轴位置。我已经实现了所有这些,但使用简单的 x+3 或 y+3,我现在想实现速度
-
我会使用离散时间步长并且在每一步中: 1. 如果加速度值发生变化,则计算它; 2.速度加加速度; 3.将速度转换为坐标增量(据我了解,您使用不同的单位来表示速度和坐标); 4. 按在步骤 3 中检索到的值增加坐标。顺便说一句,您可能还想计算速度矢量的角度,因为您有两个坐标并按速度值增加它们会产生 sqrt(2) 倍的速度比实际更大(毕达哥拉斯定理)。
-
现在如果我能在代码中实现它会很棒。老实说,如果您能提供帮助,我将不胜感激,因为我对数学算法一无所知
标签: java performance math