我使用这个例子对我的WebGL全景立方体: https://threejs.org/examples/?q=pano#webgl_panorama_equirectangularthree.js所:无法设置最大和最小缩放级别
我想限制内进行放大和缩小,即设定最高和最低缩放级别,但并不是无限的,因为代码默认提供。对于无限放大,如果滚动太多,后来反转的观点,从例如上面的函数如下:
function onDocumentMouseWheel(event) {
camera.fov += event.deltaY * 0.05;
camera.updateProjectionMatrix();
}
为了解决我尝试更新FOV的问题,当我的允许范围之内:
function onDocumentMouseWheel(event) {
var fovMAX = 95;
var fovMIN = 5;
var newFov = camera.fov + event.deltaY * 0.05;
if (newFov > fovMIN && newFov < fovMAX) {
camera.fov = newFov;
camera.updateProjectionMatrix();
};
}
请注意我的FOV是90:
camera = new THREE.PerspectiveCamera(90, window.innerWidth/window.innerHeight), 0.1, 100);
这似乎放大的水平已经非常完美了最大 - 它停止时,FOV是5和进一步不会放大。然而,当我缩小到FOV 95时,它将停止,但如果我继续用鼠标缩小,我将再次无限缩放,即使FOV仍然为95.
如何停止/控制无限缩小?
你使用的是轨道控制器或类似的东西? – pailhead
是的我正在使用的OrbitController – Vad
这可能会覆盖您的值。你能禁用它并测试你的缩放逻辑吗? – pailhead