Trackball控制左侧的错误对象旋转

时间:2013-05-28 15:39:07

标签: javascript three.js

我使用three.js TrackballControls来旋转对象。 这是一个简单的应用程序 - http://zheden.elitno.net/

当鼠标位置在场景的左侧时,我无法水平旋转对象。垂直旋转是可以的。 你能告诉我出了什么问题吗?

这是我的代码:

        var scene = new THREE.Scene();
        var camera = new THREE.PerspectiveCamera(75, 1, 0.1, 1000);
        var controls;

        var renderer = new THREE.WebGLRenderer();
        renderer.setSize(500, 500);
        document.body.appendChild(renderer.domElement);

        var geometry = new THREE.CubeGeometry(1,1,1);
        var material = new THREE.MeshLambertMaterial(
                            {
                              overdraw: true,
                              color: 0x00aa80,
                              shading: THREE.FlatShading
                            });
        var cube = new THREE.Mesh(geometry, material);
        scene.add(cube);

        var directionalLight = new THREE.DirectionalLight( 0xffffff );
            directionalLight.position.x = 1; 
            directionalLight.position.y = 1; 
            directionalLight.position.z = 1; 
            directionalLight.position.normalize();
            scene.add( directionalLight );

            var light = new THREE.DirectionalLight( 0xffffff );
            light.position.set( -1, -1, -1 );
            scene.add( light );

            var light1 = new THREE.AmbientLight( 0x222222 );
            scene.add( light1 );

        camera.position.z = 3;

        controls = new THREE.TrackballControls( camera );

            controls.rotateSpeed = 1.0;
            controls.zoomSpeed = 1.2;
            controls.panSpeed = 0.8;

            controls.noZoom = false;
            controls.noPan = false;

            controls.staticMoving = true;
            controls.dynamicDampingFactor = 0.3;

            controls.keys = [ 65, 83, 68 ];

            controls.addEventListener( 'change', render );


        function render() {
            renderer.render(scene, camera);
        }

        function animate()  {
            requestAnimationFrame(animate);


            controls.update();


            render();
        };

        animate();

谢谢!

0 个答案:

没有答案