Zoom to object in ThreeJS

前端 未结 6 1437
伪装坚强ぢ
伪装坚强ぢ 2020-12-10 09:08

Where can I change the zoom direction in three.js? I would like to zoom in the direction of the mouse cursor but I don\'t get where you can change the zoom target.

6条回答
  •  温柔的废话
    2020-12-10 09:45

    If you are using trackball controls,set

    trackBallControls.noZoom=true;
    

    and in mousewheel event use this code,

    mousewheel = function (event) {
    
                event.preventDefault();
                var factor = 15;
                var mX = (event.clientX / jQuery(container).width()) * 2 - 1;
                var mY = -(event.clientY / jQuery(container).height()) * 2 + 1;
                var vector = new THREE.Vector3(mX, mY, 0.1);
    
                vector.unproject(Camera);
                vector.sub(Camera.position);
                if (event.deltaY < 0) {
                    Camera.position.addVectors(Camera.position, vector.setLength(factor));
                    trackBallControls.target.addVectors(trackBallControls.target, vector.setLength(factor));
                    Camera.updateProjectionMatrix();
                } else {
                    Camera.position.subVectors(Camera.position, vector.setLength(factor));
                    trackBallControls.target.subVectors(trackBallControls.target, vector.setLength(factor));
    
                }
    
            };
    

提交回复
热议问题