要使一辆汽车从坡道上跳下来需要速度

我需要让一辆车从一个坡道跳到另一个坡道,我需要使用AI来完成这个任务,所以我认为在坡道附近为我的车设定一个固定的速度就足以让它正确跳转。

如果我手动input速度,它会正常工作,但是我希望我的游戏计算它,因为斜坡将由用户的input生成。

不幸的是我的物理知识缺乏,所以我需要你的帮助。

下图总结了这个问题。

物理问题

基本上,我需要计算的是在第一个斜坡的最高点,车辆必须具有的速度(以m / s为单位),因为所有的红色数据都是用户的input。

我对使用x=L, y=h-launchRampHeight的弹丸射程有一些粗略的想法,但是结果并不像我预期的那样,所以放弃了。

你有什么提示吗?

请注意,两个坡道长度相同(50米)。

编辑:

基于@mklingen这里是我正在使用的C#代码(其中Distance = L

 var speed = (Mathf.Sqrt(g)*Mathf.Sqrt(Distance)*Mathf.Sqrt((1/Mathf.Sin(Theta)))* Mathf.Sqrt((1/Mathf.Cos(Theta))))/Mathf.Sqrt(2); 

发生了什么,虽然很奇怪。

例如,在theta = 19, L = 196, h = 46我的代码返回80.54646 ,如果我将它input到汽车中,这似乎可行。 然而,在WolframAlpha中运行expression式会导致55.8这是错误的。

看起来代码是正确的,但theta = 35, L = 261, h = 39我的代码返回NaN而WolframAlpha显示52.17跳转发生。

所以,总结一下,我有两种不同的情况,其中我的结果与WolframAlpha的不一样,没有一个是正确的。

这是怎么回事?

我用运动学来解决这个问题,但得到了一个比已经复杂得多的方程。我认为它应该能够工作,而且我已经仔细检查了math(并且使用了wolfram做了一堆),但是我很警惕只是因为方程式出现了多久。

其中y =第二斜坡的高度 – 第一斜坡的终点高度,g为正值

在wolframalpha.com上查看解决scheme