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. 最后的效果

相关推荐
吴梓穆4 天前
three js 9 补间动画tween
threejs
吴梓穆6 天前
Three js 5 HDR天空盒、颜色空间、材质
threejs
吴梓穆8 天前
Three js 4 调试工具ui
threejs
独立开发之道11 天前
【three.js教程】场景图:用“父子关系“让月亮自动绕地球转
threejs
avi911113 天前
Threejs新版本后glb导出提示.x问题GLTFExporter,替代3dmax
开发语言·前端·javascript·threejs·glb·gltfexporter
答案—answer1 个月前
VibeCoding 能做到什么程度?我用它做了一座 3D 数字博物馆
3d·ai编程·threejs·vibecoding
a1117761 个月前
三色软糖坠落玻璃池 THreeJS kimi
前端·人工智能·threejs
一根数据线2 个月前
从建筑可视化到数字孪生:Three.js如何改变3D展示?
3d建模·3d模型轻量化·threejs·3d模型·模型减面·lod·轻装3d
gis分享者3 个月前
学习threejs,实现炫酷的3D编程语言地球可视化效果
可视化·编程语言·threejs·地球·spheregeometry·raycaster·meshbasic
gis分享者4 个月前
学习threejs,实现分形球体交互可视化
交互·threejs·分形·glsl·球体·shadermaterial·planegeometry