threejs使用gui改变相机的参数

调节相机远近角度

  1. 定义相机的配置:

    javascript 复制代码
    const cameraConfg = reactive({ fov: 45 })
  2. gui中加入调节fov的方法

    javascript 复制代码
      const gui = new dat.GUI();
    
      const cameraFolder = gui.addFolder("相机属性设置");
      cameraFolder.add(cameraConfg, "fov", 0, 100).name("修改相机远近").onChange((num) => {
        camera.fov = num;
        camera.updateProjectionMatrix();
      });
  3. 实现效果

调节相机的位置

  1. 定义参数:

    javascript 复制代码
    const cameraConfg = reactive({
        fov: 45,
        viewX: 0, 
        viewY: 20, 
        viewZ: 10
    });
  2. 初始化相机,设置相机位置。

    javascript 复制代码
    // 2、创建相机
    const camera = new THREE.PerspectiveCamera(
        cameraConfg.fov,
        window.innerWidth / window.innerHeight,
        0.25,
        1000
    );
    camera.position.set(cameraConfg.viewX, cameraConfg.viewZ, cameraConfg.viewY);
  3. 加入gui的配置

    javascript 复制代码
      const gui = new dat.GUI();
      const cameraFolder = gui.addFolder("相机属性设置");
    
      cameraFolder.add(cameraConfg, "viewX", -50, 50).name("修改视角-x").onChange((num) => {
        cameraConfg.viewX = num;
        camera.position.set(cameraConfg.viewX, cameraConfg.viewZ, cameraConfg.viewY);
      });
      cameraFolder.add(cameraConfg, "viewY", 0, 100).name("修改视角-y").onChange((num) => {
        cameraConfg.viewY = num;
        camera.position.set(cameraConfg.viewX, cameraConfg.viewZ, cameraConfg.viewY);
      });
      cameraFolder.add(cameraConfg, "viewZ", 0, 100).name("修改视角-z").onChange((num) => {
        cameraConfg.viewZ = num;
        camera.position.set(cameraConfg.viewX, cameraConfg.viewZ, cameraConfg.viewY);
      });
  4. 最后的效果

相关推荐
AllBlue3 天前
fbx导入blender结构错乱,但在threejs中加载正常
blender·threejs
gis分享者4 天前
学习threejs,使用TSL计算粒子鼠标特效
threejs·鼠标·粒子·tsl·raycaster
魂断蓝桥6668 天前
如何基于three.js(webgl)引擎架构,实现3D密集架库房,3D档案室智能巡检
webgl·threejs·3d建筑·3d档案室·3d定位、三维室内定位、3d建筑·3d库房·3d密集架
gis分享者12 天前
学习threejs,交互式神经网络可视化
神经网络·可视化·threejs·filmpass·effectcomposer·unrealbloompass·outputpass
qq_5895681018 天前
threejs顶点UV坐标、纹理贴图
threejs·uv
WebGIS开发20 天前
Three.js搭建小米SU7三维汽车实战(2)场景搭建
开发语言·javascript·汽车·threejs
qq_5895681021 天前
threejs模型对象、材质
threejs
gis分享者1 个月前
学习threejs,使用Physijs物理引擎,使用DOFConstraint自由度约束,模拟小车移动
汽车·threejs·物理·physijs·physi·dofconstraint
gis分享者1 个月前
学习threejs,使用Physijs物理引擎,通过控制重力,实现多米诺骨牌效果
threejs·碰撞·物理·physijs·physi·多米诺
gis分享者1 个月前
学习threejs,使用Physijs物理引擎,加载各种几何体网格对象
threejs·shape·物理·physijs·physi·几何体