threeJS Trackball Управляет вращением камеры

Некоторое время я использую threejs для 3D-моделирования приложения для моделирования на основе изображений (vmtklab.orobix.com ). Для вращения / трансляции / масштабирования камеры я использую TrackballControls.js.

controls = new THREE.TrackballControls( camera, renderer.domElement );
controls.dynamicDampingFactor = 0.5;
controls.target.set( pos.x, pos.y, pos.z );

Я привык к движению камеры, как в vtk (paraview и т. Д.), И я не могу найти, как воспроизвести это поведение в threejs.

См .: http://jsfiddle.net/ugxbktLt/5/

Обычно, если я нажимаю на холст в центре и перемещаю мышь по оси Y, камера поворачивается, как и ожидалось. Если я нажимаю на холст в точке, удаленной от центра (пример с правой стороны куба), камера вращается в двух направлениях, а не только вслед за моим движением мыши.

Я ожидал, что камера вращается, следуя только вектору между начальной точкой (mousedown) и конечной точкой, созданной движением мыши, и НЕ учитывает положение начальной точки. Кажется, вращается вокруг сферы.

Какие-либо предложения? С уважением, Симона


person daron1337    schedule 17.02.2015    source источник
comment
Да, имитация трекбола находится в центре холста. Вы, кажется, предпочитаете представлять имитируемый шаровой манипулятор как перемещаемый непосредственно под курсором мыши на событиях mousedown.   -  person WestLangley    schedule 17.02.2015
comment
Спасибо, но я не могу понять, как управлять getMouseProjectionOnBall, чтобы не всегда рассматривать центр холста как его центр. Любые идеи? tnx   -  person daron1337    schedule 17.02.2015
comment
Нет, извините - нет идей быстрого решения. Мне нравится твоя идея, кстати.   -  person WestLangley    schedule 17.02.2015
comment
Я решил реализовать новый элемент управления с нуля, следуя стилю управления камерой VTK. Я отправлю запрос на перенос как можно скорее.   -  person daron1337    schedule 18.02.2015
comment
jsfiddle.net/e0s61k8f/1   -  person daron1337    schedule 18.02.2015


Ответы (1)


Исправлено: с помощью SymmetricTrackballControls.js мы можем вращать камеру независимо от положения мыши на холсте, но с учетом только движения мыши. https://github.com/mrdoob/three.js/pull/6096

person daron1337    schedule 18.02.2015