将物体转移到预定距离

时间:2015-06-08 08:16:34

标签: vector unity3d

我在坐标(0, 0, 0)处有一个物体,我希望将此物体沿预定距离的任何方向转换,例如5

如何找到最终坐标? (不迭代检查

2 个答案:

答案 0 :(得分:0)

我相信你所问的是如何产生距离原点5(0,0,0)的点。一般情况下,您可以使用parametric equations of a sphere来生成这些点,方法是首先分别选择[0,2pi]和[0,pi]范围内的两个随机数,然后您的观点为

x = r * cos(theta) * sin(phi)
y = r * sin(theta) * sin(phi)
z = r * cos(phi)

如果θ是第一个随机数,则phi是第二个,r是距离原点的距离。

在Unity中,它更容易,因为你可以使用Random.onUnitSphere给你一个距离原点正好一点的点。然后乘以5,例如:

finalPosition = Random.onUnitSphere * r 

再次,你的例子中的r将是5.

答案 1 :(得分:-1)

你可以达到与T.Kiley完全相同的方式,即只选择一个完全随机的向量,它将具有随机方向和随机幅度。然后,您可以对该矢量进行标准化,并将其乘以5(或所需的幅度)。