Я работаю с этим удивительным экспериментом, WebGL Globe , и это действительно потрясающе.
Я изменил некоторые функции, чтобы играть и адаптировать их к тому, что я хочу.Одним из них является функция рендеринга.
ОРИГИНАЛ:
function render() {
zoom(curZoomSpeed);
rotation.x += (target.x - rotation.x) * 0.1;
rotation.y += (target.y - rotation.y) * 0.1;
distance += (distanceTarget - distance) * 0.3;
camera.position.x = distance * Math.sin(rotation.x) * Math.cos(rotation.y);
camera.position.y = distance * Math.sin(rotation.y);
camera.position.z = distance * Math.cos(rotation.x) * Math.cos(rotation.y);
camera.lookAt(mesh.position);
renderer.render(scene, camera);
}
ИЗМЕНЕНО:
function render() {
var timer = Date.now() * 0.0001;
zoom(curZoomSpeed);
rotation.x += (target.x - rotation.x) * 0.1;
rotation.y += (target.y - rotation.y) * 0.1;
distance += (distanceTarget - distance) * 0.3;
camera.position.x = (Math.cos( timer ) * 960);
camera.position.y = distance * Math.sin(rotation.y);
camera.position.z = (Math.sin( timer ) * 960) ;
camera.lookAt( scene.position );
renderer.render(scene, camera);
}
Теперь мой глобус автоматически вращается, но я не могу перетащить глобус иповерните его с помощью мыши по осям X и Z, только Y. Как я могу использовать эту функцию автоповорота и не потерять управление поворотом с помощью мыши в осях X и Z?