gpt4 book ai didi

three.js - 如何使用 OrbitControls 无限制地旋转

转载 作者:行者123 更新时间:2023-12-02 00:25:29 24 4
gpt4 key购买 nike

现在我正在使用轨道控制,我只能在上下方向上旋转 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();

最佳答案

“轨道相机”的问题在于(根据定义)它总是试图让相机“向上”指向向上。这意味着当您直视向上或向下时,相机方向是未定义。这就是为什么 three.js 实现了一个 makeSafe() 方法,将极角保持在 +/- 90 度角内。

如果取消此限制,您可能会看到相机在经过 90 度角(或更糟)时立即翻转方向。这通常是应用程序中的不良行为。

总结一下:如果您想要无限旋转,您不需要轨道相机。这不是技术上的限制,而是概念上的限制。

关于three.js - 如何使用 OrbitControls 无限制地旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53967222/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com