我想旋转一个球体,所以我想知道轨道控制是否可以起作用。
但是,以下代码无效:
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();
似乎轨道控制仅在参数是相机时才起作用。为什么呢?
答案 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);