球体内的三个js视频位置

时间:2017-09-18 11:06:19

标签: javascript three.js

我使用三个j来显示视频,用户可以使用鼠标浏览视频,例如:

https://threejs.org/examples/?q=video#webgl_video_panorama_equirectangular

代码:https://github.com/mrdoob/three.js/blob/master/examples/webgl_video_panorama_equirectangular.html

有没有办法显示用户在容器内观察的位置(位置和方向),如下所示:

http://ignitersworld.com/lab/imageViewer.html

在左上角有一个显示当前位置的小方块。我想知道视图面临的位置和方向(全部是2D)

我怎么能实现这个目标?

编辑:

方向已经解决。

我正在寻找视频中的布局位置,这可能吗?如图所示:https://imgur.com/a/xsNYM

1 个答案:

答案 0 :(得分:1)

您可以获取相机方向并计算角度。这些角度将是您在球体上的2D方向:

var dir = camera.getWorldDirection();
var groundProjection = dir.clone().projectOnPlane(new THREE.Vector3(0,1,0))
var longitudeRadians = Math.atan2(groundProjection.x, groundProjection.z);
var latitudeRadians = Math.atan2(groundProjection.length(), dir.y)

// longitudeRadians is now an angle between -3.14 and 3.14
// latitudeRadians is now an angle between 0 and 3.14

以下是一个正在运行的示例:https://jsfiddle.net/holgerl/bqvdotps/