我试图用一种编程语言来实现向心力。
我看了一些视频教这个理论。但我不知道如何在编程语言中应用这一点。
如果我理解的话,我必须把向心力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;但是,如何运用上述向心力呢?
发布于 2014-01-27 13:07:52
如果你只想让月亮绕着地球旋转,并且有一些释放月球的触发装置,那就更容易使用围绕中心的自转而不是力。给定以下GameObject层次结构:
中心(附MoonRotator)
-月亮
--地球
public class MoonRotator : MonoBehaviour
{
public bool cancelCentripetalForce = false;
public Vector3 angularVelocity = new Vector3 (0f, 0f, 100f);
public GameObject moon;
void Update () {
if (cancelCentripetalForce) {
Vector3 radius = moon.transform.position - transform.position;
Vector3 angularVelocityRadians = Mathf.Deg2Rad * angularVelocity;
moon.rigidbody.velocity = Vector3.Cross (angularVelocityRadians, radius);
moon.transform.parent = null;
Destroy (this);
} else {
Vector3 rot = transform.rotation.eulerAngles + angularVelocity * Time.deltaTime;
transform.rotation = Quaternion.Euler (rot);
}
}
}如果cancelCentripetalForce设定好了,那么真正的月球就会停止绕地球运行,而是以它当前的切线速度前进。这是作为:
V=ω×r
地球有localPosition (0,0,0),在这个例子中,月球位于围绕z轴旋转的x-y平面上。
发布于 2022-04-05 07:10:16
如果你想取消力,添加一个相反的力矢量,它是基于你物体的线性速度和电流方向。
所以我有一个物体指向Z轴。对象的“前向”向量是0,0,1. Do 1-Math.abs(先发.x),当你沿着Z轴前进时,y和z得到1,1,0的值。你希望你指向的方向是0,这样从那个方向来的惯性就不会受到任何影响。现在,您可以在没有指向的任何方向应用取消力。
这意味着,如果你的物体在世界空间中向任何方向移动,在它没有面对的空间中,你可以很容易地施加一个抵消力,它乘以物体的线性速度,得到圆形运动,它使用力而不是直接设定速度。
另一种方法是通过手动设置V来求解,然后使用V=RW查找radius。你应该知道V,R或者W,现在你可以找到保持轨道稳定的力,而不是从每一个框架中增加惯性。
https://stackoverflow.com/questions/21378855
复制相似问题