gpt4 book ai didi

math - 轨迹-数学,c#

转载 作者:行者123 更新时间:2023-12-02 07:55:47 27 4
gpt4 key购买 nike

我正在尝试绘制两点之间的轨迹路径。我只知道有问题的两点和它们之间的距离。我希望能够计算的是到达终点所需的速度和角度。

我还希望能够将一些重力和风因素考虑在内,这样路径/轨迹就不那么“完美”了。它用于电脑游戏。

谢谢 F。

最佳答案

整个 body 状况可以用 SUVAT equations of motion 来描述,因为加速度始终是恒定的。

以下说明假定您了解基本代数和矢量数学。如果您不熟悉它,我强烈建议您在尝试编写您提议的那种游戏之前先阅读它。它还假定您正在处理 2D,但如果您正在处理 3D,则大多数情况同样适用,因为它都是矢量形式 - 您最终只是求解立方而不是二次,最好使用一个数值求解器。


物理

(注意:向量以粗体表示。)

基本上,您首先要制定位移方程(矢量形式):

r = ut + (at^2)/2

r 是相对于起始位置的位移,u 是初始速度,a 是加速度(始终恒定)。这当然是时间。

a 取决于系统中存在的力。在重力和风的一般情况下:

a = F_w/m - g j

其中 i 是 x 方向的单位向量,j 是 y 方向的单位向量. g 是重力加速度(地球上为 9.81 ms^-2)。 F_w 是风力矢量(无风时此项消失)——为简单起见,我们假设它是常数。 m 是弹丸的质量。

然后您可以简单地将 a 的等式代入 r 的等式,然后您留下三个变量的方程式 (r, u, t)。接下来,将 r 的单个矢量方程扩展为两个标量方程(用于 x 和 y 位移),并使用代入法消除 t(数学这里可能会有点棘手)。您应该得到一个只有 ru 作为自由变量的二次方程。

现在,您想求解 r = [target position] - [start position] 的方程。如果您为初始速度 u(即速度)选择某个大小,那么您可以将 u 的 x 和 y 分量写为 U cos(a) U sin(a),其中 U 是初始速度,a 是初始角度。这可以重新排列并使用一些三角函数,您最终可以求解角度 a,从而得到发射速度!


算法

上面的大部分描述应该先写在纸上。然后,只需编写一个函数来解决 quadratic formula 问题并应用一些反三角函数得到结果。


附言抱歉这篇文章中的所有数学/物理,但这是不可避免的!无论如何,OP 似乎更多地询问了物理方面而不是计算方面,所以这就是我提供的。希望这对 OP 和其他人仍然有用。

关于math - 轨迹-数学,c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/966935/

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