我希望我的代码类似于下图,其中一个人将一个物体扔到地上。该图类似于一个人在 z 维度上掉落的许多物体中的一个物体。初始速度为 10,初始距离为 0。重力为 9.81。现在,我们将只使用这个对象。必须在位置之前设置速度。我的代码没有返回正确的输出。
这是我的 Scala 代码
class PhysicsVector(val x: Double, val y: Double, val z: Double){
}
class PhysicalObject(var location: PhysicsVector, var velocity: PhysicsVector){
}
class World(var gravity:Double){
var objects: List[PhysicalObject] = List()
}
object Physics {
def updateWorld(earth: World, deltaTime: Double): Unit = {
val initial = 10.0
for (i<-earth.objects){
val zVelocity = -(initial-(earth.gravity*deltaTime))
val d = 0
i.velocity = new PhysicsVector(0.0, 0.0, zVelocity)
i.location = new PhysicsVector(0.0, 0.0 , d + (zVelocity * deltaTime))
}
}
}
这是带有公式的图表 Resemble this graph
最佳答案
此代码将每个对象和每次调用的位置和速度设置为相同的值,因为所有计算都基于常量。您需要从对象中读取当前速度和位置并修改它们。
关于java - 在 Scala 中删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54778879/