我试图模拟轨迹方程(对于二维坦克游戏)。我试图使用的等式是:
https://www.wolframalpha.com/input/?i=y+%3D+xtan(60)+-+(9.82++x%5E2)+%2F+(2++150%5E2++cos%5E2(60))
这是一个使用150作为我的初始速度和60度作为角度的示例。看这个图,根应该是x = 1984。
在c ++中我有:
if (shoot) {
x += elapsed*500;
y = x*tan(60) - (g * pow(x, 2)) / (2 * pow(150, 2) * pow(cos(60), 2));
}
其中elapsed是自上一帧起经过的时间(以秒为单位),g为9.82。我的问题是,射击落在x = 1378并且具有最高y值约为200.我认为我正确地模拟了这个等式,所以我现在真的不是我的错。对于我遵循本教程的轨迹:https://www.youtube.com/watch?v=5EjQkutYOZg
答案 0 :(得分:0)
你需要以弧度而不是度数工作。
将60更改为60*(PI/180)
等于{等于},等式将起作用。 PI是那个圈子的东西3.1415 ...