我希望我的代码类似于下图,其中一个人将一个物体放在地面上。该图类似于一个人将在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
答案 0 :(得分:1)
此代码将每个对象和每个调用的位置和速度设置为相同的值,因为您的所有计算都基于常量。您需要从对象读取当前的速度和位置并进行修改。