Я пытаюсь управлять камерой в Autodesk Forge Viewer. Установка цели и положения, кажется, работает нормально, но если я попытаюсь установить вращение или кватернион, это не будет иметь никакого эффекта.Управление камерой в Forge viewer
Чтобы получить камеру, я использую функцию getCamera, а затем applyCamera после того, как попытался установить параметры.
То, что я пытаюсь достичь, - это использовать ориентацию устройства на карманном устройстве для поворота модели. Просто использование альфы и бета для установки цели не является гладким опытом.
// get camera
var cam = _viewer.getCamera();
// get position
var vecPos = cam.position;
// get view vector
var vecViewDir = new THREE.Vector3();
vecViewDir.subVectors(cam.target,cam.position);
// get length of view vector
var length = vecViewDir.length();
// rotate alpha
var vec = new THREE.Vector3();
vec.y = length;
var zAxis = new THREE.Vector3(0,0,1);
vec.applyAxisAngle(zAxis,THREE.Math.degToRad(alpha));
// rotate beta
var vec2 = new THREE.Vector3(vec.x,vec.y,vec.z);
vec2.normalize();
vec2.negate();
vec2.cross(zAxis);
vec.applyAxisAngle(vec2,THREE.Math.degToRad(beta) + Math.PI/2);
// add to camera
cam.target.addVectors(vecPos,vec);
_viewer.applyCamera(cam,false);
Привет, в прошлом году я сделал эксперимент по вождению камеры Viewer с помощью мобильного устройства. Это блог об этом. https://forge.autodesk.com/cloud_and_mobile/2016/11/remotely-connect-forge-viewer-with-mobile-sensor-and-touch-by-javascript.html. Я просто скопировал некоторый код Viewer3D.js, чтобы повернуть камеру. не могли бы вы взглянуть, может ли это немного помочь? Если нет, можете ли вы предоставить фрагмент кода, который вы сыграли для нас, чтобы расследовать? –
Привет. Я добавил фрагмент кода того, что я впервые попробовал на свой вопрос. Я также пытался изменить свой код с помощью кватерниона, но он все еще не очень хорош. Значения альфа и бета с моего устройства очень «прыгающие». Если работать с имитируемой ориентацией устройства в Chrome, это выглядит хорошо. – FrodeTo