C++ 重力,单位为C++;使用类和列表(无图形表示)

C++ 重力,单位为C++;使用类和列表(无图形表示),c++,list,class,2d,gravity,C++,List,Class,2d,Gravity,我需要实现的是一个程序,它将在二维平面(仅x轴和y轴)上模拟重力,使用欧拉方程,基于天文物体的类别和所述物体的列表 对于物体,我需要给它两个位置,一个质量和一个速度(如果它从一开始就存在的话)。半径被忽略,因为我不会发生碰撞 然后,当我根据新对象的质量向列表中添加新对象时,我被告知要相应地重新计算每个对象的位置和速度 我不知道怎么做,因为所有这些都应该由时间决定,对吗?这是一个不断变化的局面,特别是在没有考虑碰撞的情况下。这意味着所有的物体都将不规则地旋转和飞来飞去,所以我不能简单地说“好吧,在

我需要实现的是一个程序,它将在二维平面(仅x轴和y轴)上模拟重力,使用欧拉方程,基于天文物体的类别和所述物体的列表

对于物体,我需要给它两个位置,一个质量和一个速度(如果它从一开始就存在的话)。半径被忽略,因为我不会发生碰撞

然后,当我根据新对象的质量向列表中添加新对象时,我被告知要相应地重新计算每个对象的位置和速度

我不知道怎么做,因为所有这些都应该由时间决定,对吗?这是一个不断变化的局面,特别是在没有考虑碰撞的情况下。这意味着所有的物体都将不规则地旋转和飞来飞去,所以我不能简单地说“好吧,在添加一个新物体后,前一个物体移动到XY并停留在那里”

我以前尝试过搜索,但大多数重力项目都使用Box2D引擎或类似的库,而我需要做的只是使用一个简单的类、一个列表和一个公式

我知道它背后的数学,重力常数,力方程等等,但我完全不知道如何实现它。我有一个大问题,因为作业是星期一,我自己有很多工作(我有一个刚开始的公司),我从C++讲座中忘了很多。 如果有人能帮我,我将非常感激,提前谢谢


编辑:我真的一点也不知道如何解决这个问题,我问的每个人都告诉我用向量创建一个类,把它放入一个列表,并创建一个方法,该方法将及时更新所有参数,但尽管我知道这一点,因为我理解这个主题,我不知道如何在代码中表示它。。。我知道我应该早点做,但我现在真的很绝望。无论如何,我需要修改代码并理解它,我不是计算机傀儡,我需要向我的教授解释,所以我会掌握它——我只是不知道C++,如果我没有及时完成,我可能完成了我的研究……/P>每一个迭代步骤,计算所有合力,并据此计算。更改对象的速度。因此,对于每个粒子,您可能需要一个质量(标量)+速度(矢量)。您还需要一个时间步长来进行模拟,这样您就可以将每个时间步长的引力总和转换为正确的δ速度。太好了,谢谢!但是如何实现时间步骤呢?有什么意义吗?取决于你想要的准确性。基本上你用时间步长从加速度到速度的变化,通过做:δv=a*t。其中delta t是您的时间步长。你所做的是积分的数值近似,所以你的时间步长越小,越精确。是的,我这里有所有必要的数学,因为我已经写下来了,我确实理解它,但是,我不知道如何在代码中实现时间步长。。。我发现了这个:,但速度与此无关,每个物体都指向已经存在的原点,而不是其他物体。它甚至不包括列表,我完全被卡住了。。。