为什么轨道控制不能在三个js中使用球体而不是相机?

时间:2015-03-06 04:16:29

标签: three.js

我想旋转一个球体,所以我想知道轨道控制是否可以起作用。

但是,以下代码无效:

var geometry = new THREE.SphereGeometry(16, 16, 16);
var material  = new THREE.MeshNormalMaterial();
var mesh  = new THREE.Mesh( geometry, material );
scene.add( mesh );

var controls  = new THREE.OrbitControls(mesh);
//then inside the animation loop
controls.update();

似乎轨道控制仅在参数是相机时才起作用。为什么呢?

2 个答案:

答案 0 :(得分:0)

您必须将相机传递到轨道。

像这样:

camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 10000 );
            camera.position.set( 0, 1000, 1000 );

            var controls = new THREE.OrbitControls( camera );

这有帮助吗?

答案 1 :(得分:0)

我不认为轨道控制可以像这样工作,摄像机围绕某个点旋转,它不会“旋转”该点。但是,您可以将轨道控件的目标更改为球体的位置矢量,以使摄影机绕球体的位置旋转:

controls.target.copy(mesh.position);