当前位置: 首页 > news >正文

【threejs】一天一个小案例讲解:控制面板(GUI)

# 好吧,每天更新实在有点艰巨,我尽量少量多次

代码仓

所有代码都会上传到这里,可自行clone

GitHub - TiffanyHoo/three_practices: Learning three.js together!

运行效果图

知识要点

一、安装dat.gui
npm i dat.gui
二、使用步骤: 

①初始化dat.GUI

②设置可调节参数,定义初始化值

③向GUI添加控件

④requestAnimationFrame中读取值更新场景参数

三、常用控件与API

• gui.add(obj, prop, min, max):创建数值滑块(prop 为对象属性,min/max 为范围)

• gui.addColor(obj, prop):颜色选择器,值需为十六进制(如 0xff0000)

• gui.add(obj, prop):根据属性类型自动生成控件

        布尔值(true/false)→ 开关按钮

        字符串 → 下拉选择框(需配合 options 参数)

const params = {quality: 'high',
};gui.add(params, 'quality', ['low', 'medium', 'high']).name('画质');

• gui.add(obj, 'method'):添加按钮,点击时执行对象的方法(如 resetScene())

• gui.close() / gui.open():关闭/打开控制面板

• gui.name() :命名

核心运行代码

var gui = new dat.GUI();var controls = new function () {this.rotationSpeed = 0.02;this.bouncingSpeed = 0.03;
};var gui = new dat.GUI();
gui.add(controls, 'rotationSpeed', 0, 0.5);
gui.add(controls, 'bouncingSpeed', 0, 0.5);

http://www.lqws.cn/news/477919.html

相关文章:

  • 扩散模型与强化学习(1):字节Seedance中的人类偏好优化实践
  • 华为云Flexus+DeepSeek征文|基于Dify构建解析网页写入Notion笔记工作流
  • sqlite3 数据库反弹shell
  • 开发语言本身只是提供了一种解决问题的工具
  • 【AI智能体】Spring AI MCP 服务常用开发模式实战详解
  • TDengine 3.3.5.0 新功能——服务端查询内存管控
  • PaddleOCR + Flask 构建 Web OCR 服务实战
  • Flink Sink函数深度解析:从原理到实践的全流程探索
  • 63-Oracle LogMiner(23ai)-实操
  • 合成生物学与人工智能的融合:从生命编程到智能设计的IT新前沿
  • 华为云Flexus+DeepSeek征文|在Dify-LLM平台中开发童话故事精灵工作流AI Agent
  • Kafka动态配置深度解析
  • 测试用例原则之 FIRST/CORRECT/5C原则
  • 论文笔记:Large language model augmented narrative driven recommendations
  • 学习设计模式《十四》——组合模式
  • [计算机网络] 局域网内的网络传输
  • #### es相关内容的索引 ####
  • 【期末笔记】高频电子线路
  • 双向长短期记忆网络(BiLSTM)
  • 如何用AI开发完整的小程序<8>—让AI制作具体功能
  • KES数据库部署工具使用
  • 《HTTP权威指南》 第7章 缓存
  • uni-app项目实战笔记21--uniapp缓存的写入和读取
  • 药房智慧化升级:最优成本条件下开启地市级医院智慧医疗新变革
  • Ragflow 源码:ragflow_server.py
  • rust单体web项目模板搭建
  • vim学习流程,以及快捷键总结
  • 微服务网关/nacos/feign总结
  • Maven:依赖管理就像乐高拼装的艺术
  • Vmware WorkStation 17.5 安装 Ubuntu 24.04-LTS Server 版本