我想在地图上移动一个对象,但我不知道如何为它获取Vector3。
example:
object A coordinates:
coordsA = Vector3();
coordsA.x = 100.0f;
coordsA.y = -500.0f;
coordsA.z = 50.0f;
object B coordinates:
coordsB = Vector3();
coordsB.x = -400.0f;
coordsB.y = 200.0f;
coordsB.z = 40.0f;
我可以选择设置力来移动对象。 setForce(Vector3 coordsC);
如何获取Vector3?
是否要对位于给定坐标的对象A施加力以将其移向指定坐标处的对象B?
- > "是"
在对象A到达对象B或有限时间之前是否会施加力?
- > "是的,我想要应用直到对象A到达!"
您希望对象A多快到达对象B的位置?
- >"如果我可以改变对象到达位置的速度,那就很好了!"
答案 0 :(得分:0)
有很多不同的方法可以做到这一点。这是一个:
我们假设物体保持静止并且没有额外的力(如摩擦力或重力)。我们希望运动花费时间t
并将路径分成两部分:前半部分将是恒定加速度。第二条路径将是持续减速。
路径方向为d = B - A
。因此必要的加速度(3D矢量):
a = 4 / t^2 * d
路径的前半部分为,下半部分为负。这可以从运动学运动方程得出:
s(t, v0, s0) = 1/2 * a * t^2 + v0 * t + s0,
我们设置
1/2 * (A + B) = s(1/2 * t, 0, A).
要计算所需的力,我们需要物体的质量m
。然后:
F = m * a
是你需要申请的力量。