Javascript Three.js如何存储方向?

Javascript Three.js如何存储方向?,javascript,3d,three.js,multiplayer,direction,Javascript,3d,Three.js,Multiplayer,Direction,我正在为我和朋友们正在制作的游戏编写服务器。我想在一个变量中保持某个玩家在3D平面上看到的方向。我正在考虑让它成为一个具有两个弧度变量的对象,即垂直角和水平角。但是我的朋友告诉我要像Three.js那样存储,因为这样会让他的生活更轻松。有人能帮我吗 你应该复习《游戏开发者数学》系列: 具体来说,使用向量。应将角色或实体的方向/朝向角度存储为矢量3或三维矢量。在THREE.js中,这是新的THREE.Vector3(x,y,z) 要获取对象A相对于对象B的方向,请执行以下操作: var direc

我正在为我和朋友们正在制作的游戏编写服务器。我想在一个变量中保持某个玩家在3D平面上看到的方向。我正在考虑让它成为一个具有两个弧度变量的对象,即垂直角和水平角。但是我的朋友告诉我要像Three.js那样存储,因为这样会让他的生活更轻松。有人能帮我吗

你应该复习《游戏开发者数学》系列:

具体来说,使用向量。应将角色或实体的方向/朝向角度存储为矢量3或三维矢量。在THREE.js中,这是新的THREE.Vector3(x,y,z)

要获取对象A相对于对象B的方向,请执行以下操作:

var direction = posB.clone().sub( posA )
这克隆了位置B,所以我们不会用减法把它弄糟,然后马上用A减去它

但是,您会注意到向量现在有一些长度。这在计算中通常是不可取的,例如,如果你想用这个方向乘以其他东西,比如推力。在这种情况下,我们需要规范化向量:

direction.normalize()
现在你可以做一些有趣的事情,比如:

posA.add( direction.clone().multiplyScalar( 10.0 ) );

这将使posA朝着posB的方向移动,空间为10个单位。

请添加一些示例。你的意思不是很清楚。大概