java - java 地球绕太阳运行

标签 java

运行程序时,会打印“NaN”值。我推断错误在于“Sun.componentY()”和“Sun.componentX()”部分期间 do while 循环中的主类,因为新的重力场除以零。为了纠正这个问题,我尝试在 Gravfield 中编写一种名为 CalcAcc 的新方法,用于计算太阳和地球之间的力。然而,我不确定如何使用 vector 将其实现到我的主要方法中,以及如何让它正确输出地球的位置和速度。请参阅下面的代码,非常感谢。

只是为了澄清我的模拟由 4 个不同的类组成,我认为PhysicsVector 类不是问题的根源。

最佳答案

在这种情况下,您的 GravField 似乎是一个不寻常的抽象。在“简化”的物理引擎中,您可以拥有一个重力“场”,它对每个物体施加恒定的力,就像在地球上一样。

在这种情况下,您正在模拟空间,并且重力被认为是空间/时间的扭曲。每次物体移动时,它都会影响其他物体上的力。

我建议您重新考虑这种抽象,并且对于引擎的每次迭代,只需计算模拟中对象对的每个组合之间的重力。这将是一个 O(n^2) 操作!

关于java - java 地球绕太阳运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34089985/

相关文章:

java - Android:如何将回调传递给 Activity ?

java - 将Java程序的所有库、音频等包含在一个JAR文件中

java - 将具有自定义时区的 java.util.Date 转换为 UTC

订阅 PostgreSQL/MySql 的 Java 应用程序

java - 为什么 Java 仍然用于 Web 开发?

java - 将字符串转换为整数

java - log4j 中的本地化

java.lang.ClassNotFoundException : com. ibm.jms.xxxxxxxxxx 问题

java - RxJava 适合分支工作流程吗?

java - Spring 中的 Flyway DB 升级器