相关疑难解决方法(0)

Three.js:获取相机正在观察的方向

我确定这个问题多次重复,但我找不到任何有关我具体问题的答案!

我正在使用html5和THREE.js创建游戏,并且我有一个以'YXZ'的欧拉顺序旋转的相机.

这样摄像机就像头部一样向上,向下,向左和向右旋转.如第一人称视角.

使用此euler顺序,不使用camera.rotation中的z属性(始终为0).x用于指定以弧度表示的音高或纬度,y用于表示经度.

我有许多目标以球形方式围绕用户移动,相机始终位于该球体的中心.可以说球体的半径为1000.

我的目标是计算相机所在的位置和目标所在的位置之间的角度.

我写了这个代码来计算2个向量之间的角度:

var A = new THREE.Vector3(1,0,0);
var B = new THREE.Vector3(0,1,0);

var theta = Math.acos( A.dot(B) / A.length() / B.length() );

// theta = PI/2;
Run Code Online (Sandbox Code Playgroud)

我有目标的矢量(目标[0] .position).

问题是我无法找到一种方法来获取相机所在的矢量.

我看过Vector3.applyProjection和applyEuler方法,并且玩了但仍然无法获得任何好结果.

我相信在进行任何预测之前,首先必须将欧拉订单改回'XYZ'吗?我试过了,我不知道怎么做,文档很难理解.

假如相机正好向右看,那么我需要在当前旋转方向上获得距离中心一点距离的向量.

所以我最终会得到2个向量,我可以对它进行计算!

先谢谢你!

javascript html5 vector three.js

19
推荐指数
2
解决办法
2万
查看次数

标签 统计

html5 ×1

javascript ×1

three.js ×1

vector ×1