Элементы управления орбитой позволяют камере двигаться по орбите вокруг целевого объекта.
Пример
var renderer = new v3d.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
var scene = new v3d.Scene();
var camera = new v3d.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 10000);
var controls = new v3d.OrbitControls(camera);
//controls.update() must be called after any manual changes to the camera's transform
camera.position.set(0, 20, 100);
controls.update();
function animate() {
requestAnimationFrame(animate);
// required if controls.enableDamping or controls.autoRotate are set to true
controls.update();
renderer.render(scene, camera);
}
object: (требуется) Камера, которой необходимо управлять.
domElement: (необязательно) Элемент HTML, используемый для слушателей событий. По умолчанию это весь документ, однако если вы хотите, чтобы элементы управления работали только над определенным элементом (например, холстом), вы можете указать это здесь.
Установите значение true для автоматического вращения вокруг целевого объекта. Обратите внимание, что если эта функция включена, вы должны вызвать .update () в цикле анимации.
Скорость вращения вокруг целевого объекта, если # .autoRotate : Booleanравно true. По умолчанию 2.0, что соответствует 30 секундам на вращение при 60 кадр/с. Обратите внимание, что если включено # .autoRotate : Boolean, необходимо вызвать .update () в цикле анимации.
Инерция демпфирования, используемая, если # .enableDamping : Booleanустановлено в true. Обратите внимание, что для того, чтобы это сработало, вы должны вызвать .update () в цикле анимации.
Элемент HTMLDOMElement, используемый для прослушивания событий мыши/прикосновения. Он должен быть передан в конструкторе; изменение его здесь не приведет к установке новых слушателей событий. По умолчанию это весь документ.
Установите значение true, чтобы включить демпфирование (инерцию), которое можно использовать для придания чувства веса элементам управления. По умолчанию установлено значение false. Обратите внимание, что если эта функция включена, необходимо вызвать .update () в цикле анимации.
Включить или отключить поворот камеры по горизонтали и вертикали. По умолчанию - true.
Обратите внимание, что можно отключить одну ось, установив минимальное и максимальное значение polar angle или azimuth angle на одно и то же значение, что приведет к фиксации вертикального или горизонтального вращения на этом значении.
Этот объект содержит ссылки на коды клавиш для управления панорамированием камеры. По умолчанию это 4 клавиши со стрелками.
controls.keys = {
LEFT: 37, //left arrow
UP: 38, // up arrow
RIGHT: 39, // right arrow
BOTTOM: 40 // down arrow
}
Полный список кодов ключей смотрите на this page.
Как далеко вы можете двигаться по горизонтали, верхний предел. Диапазон - от Math.PI до Math.PI (или бесконечность для отсутствия предела), по умолчанию - Infinity(Бесконечность);
Как далеко вы можете двигаться по горизонтали, нижний предел. Диапазон от - Math.PI до Math.PI (или - Infinity для отсутствия предела), по умолчанию - Infinity(Бесконечность);
Этот объект содержит ссылки на кнопки мыши, используемые для элементов управления.
controls.mouseButtons = {
ROTATE: v3d.MOUSE.LEFT,
ZOOM: v3d.MOUSE.MIDDLE,
PAN: v3d.MOUSE.RIGHT
}
Определяет, как переводится положение камеры при панорамировании. Если true, камера поворачивается в пространстве экрана. В противном случае камера поворачивается в плоскости, ортогональной направлению движения камеры вверх. По умолчанию true.
Объект3D, положение которого в мировом пространстве служит точкой фокуса элементов управления, а .object вращается вокруг него. Его можно обновить вручную в любой момент, чтобы изменить фокус элементов управления.
toPosition — Новое положение камеры.
toTarget — Новая целевая точка.
time — Длина анимации твина.
finishCb — Обратный вызов, который будет вызван после завершения анимации твина.
movementType — Интерполяция движения. Может быть
v3d.TweenLinear (default) или v3d.TweenSpherical.
Изменение текущего положения камеры и целевой точки на указанное новое положение и цель плавно в течение указанного времени.
Обновить элементы управления. Должно вызываться после любого ручного изменения трансформации камеры, или в цикле обновления, если установлены .autoRotate или .enableDamping.
Исходный файл
О том как получить исходный код этого модуля читайте тут.