gpt4 book ai didi

javascript - 如何获得射弹的 Angular ,使其能够击中矢量 2 目标,同时考虑重力

转载 作者:行者123 更新时间:2023-11-28 05:17:53 27 4
gpt4 key购买 nike

我有一个可以发射射弹的敌人,但我的问题是我试图找到击中玩家所需的 Angular ,但射弹必须以精确的速度发射(即不能更慢地发射射弹) )。我已经尝试过距离方程,但我无法将其简化以得到 theta( Angular ),它会影响 y 距离、x 距离、速度和重力。

抱歉,这个问题太庞大了,宇宙树懒

最佳答案

嗯...你有:D - 到目标的距离

g = 9.8 - g-力

v - 你的射击速度

沿 X 轴的速度为 v*cos(a)

沿 Y 方向的速度为 v*sin(a)

您需要旅行距离 D,因此您的飞行时间为t = D/v*cos(a)

此时您需要达到飞行的最大高度并后退。如果我们忽略空气阻力,在最大点你的垂直速度将为 0,在飞行结束时你的垂直速度将等于起始垂直速度。

因此,请记住速度方程为 v = acc*t (其中 acc 为 g)t = v/acc。在你的情况下,你必须将速度降低到 0 并恢复到原来的速度,所以你的系数为 2。

t = 2*(v*sin(a)/g)

总结一下:

t = D/v*cos(a)

t = 2*(v*sin(a)/g)

<小时/>

2*(vsin(a)/g) = D/vcos(a)

你什么都知道,除了 Angular a。

因此,通过进行一些变量传输,您会得到

2sin(a)cos(a) = Dg/v^2

这是:

sin(2a) = D*g/v^2

2a = arcsin(D*g/v^2)

所以,这一定是答案。

a = arcsin( D * g/(v^2) )/2

关于javascript - 如何获得射弹的 Angular ,使其能够击中矢量 2 目标,同时考虑重力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40823749/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com