【发布时间】:2014-01-27 10:49:56
【问题描述】:
我正在尝试在编程语言中实现向心力。
我看过一些教授理论的视频。但我不知道如何在编程语言中应用它。
如果我理解我必须将向心力ac = v²/r 应用于速度矢量。但我不知道该怎么做。
我有两个游戏对象,一个描绘地球,另一个描绘月球。我想要的是围绕地球平移月球并使用按钮“切断/取消”向心力,以便月球离开地球轨道。
我不知道如何开始。
我只知道这样旋转:
velocity.x = Mathf.Cos(Time.time) * earth_moon_radius;
velocity.z = Mathf.Sin(Time.time) * earth_moon_radius;
moon.transform.position = velocity;
但是如上所述如何施加向心力呢?
【问题讨论】:
-
为什么要轮换?旋转不是力的产物吗?如果您想施加力,我将停止旋转并仅保留位置矢量和方向矢量 - 每一步都向位置矢量添加方向矢量的倍数(取决于速度)并向其施加力(添加中心方向矢量的倍数? )。其乘积应与旋转相同。编辑:你想对什么物体施加力?
-
@wondra 我可能把一切都搞砸了。你能展示一些代码如何做到这一点吗?我是菜鸟。我想对月球施加力。它将围绕地球旋转。
-
你在月球和地球上尝试过老式的质量和重力吗?
-
@Fabricio 我只是指出月球应该有一个直线方向的速度矢量 - 如果没有力影响它,它会直线飞离你的地图(en.wikipedia.org/wiki/Newton%27s_laws_of_motion)。如果您添加向心力(重力,或任何将其拉向地球的东西),直线矢量将被调整 dT(每一点时间都会将其转向地球)并且力的结果是您的旋转。我不是物理学家,所以我可能错了。
-
对于这个问题,你真的想要做一个动力学模拟,使用作用力来计算加速度、速度和位置,或者你只是想要一个对象吗?是先做圆周运动,然后再做直线运动?模拟会给出相同的结果,但要困难得多,所以如果你只是想运动,就做运动。