现在我正在使用轨道控件,并且只能在上下方向上旋转180度。在另一个方向上,我可以永远旋转,我认为这是z方向。无论如何,我如何才能完全不受所有旋转方向的限制?
这是我的代码,我尝试了无穷大:
this.scene_threeD = new THREE.Scene();
this.camera_threeD = new THREE.PerspectiveCamera( 75, width_threeD / height_threeD, 0.1, 1000 );
this.renderer_threeD = new THREE.WebGLRenderer({ canvas: threeDCanvas,
preserveDrawingBuffer: true,
antialias: true });
this.renderer_threeD.setSize( width_threeD, height_threeD);
controls = new THREE.OrbitControls(this.camera_threeD, this.renderer_threeD.domElement);
controls.maxPolarAngle = Infinity;
controls.minPolarAngle = -Infinity;
controls.maxAzimuthAngle = Infinity;
controls.minAzimuthAngle=-Infinity;
controls.update();
答案 0 :(得分:2)
“轨道摄像机”的问题是(按照定义)它总是试图使摄像机“向上”指向向上。这意味着当您向上或向下直视时,相机方向为 undefined 。这就是为什么three.js实现了makeSafe()方法,该方法将极角保持在+/- 90度角内的原因。
如果要删除此限制,则可能会在90度(或更糟)的角度通过时立即看到相机翻转方向。这通常是应用程序中的不良行为。
总而言之:如果您想无限旋转,就不需要轨道照相机。这不是技术上的限制,而是概念上的限制。