最新要闻
- 【环球速看料】西力科技:中标1.26亿元国家电网电能表采购项目
- 焦点信息:中国的油车时代过去了!大众关闭在中国建的第一座工厂
- 只用45分钟!女驴友被秃鹫吃得只剩一副白骨
- 近6成应届生没工作 企业招聘要求扎心:名校出身仅排第5 更高学历根本不重要
- 天天微速讯:7大AI比拼高考作文 语文老师打分:一大批学生该恐慌了
- 腾讯《无畏契约》国服今日终测:服务器全天开放、20名英雄爽玩
- 小摩:予招商银行(03968)“增持”评级 目标价70港元
- 南开区市场监管局强化高考、中考期间食品安全监管保障工作
- 环球快看:广丰区气象台更新雷电黄色预警信号【III级/较重】【2023-06-08】
- 氧化铝6月19日期货挂牌交易 后市铝价走向如何?
- 聚焦:雷阵雨+8级阵风,将影响晚高峰!天津发布雷雨大风蓝色预警
- 每日视讯:天津向渤海湾增殖放流各种苗种超100万尾
- 宇宙最多的两个元素是氢和什么_宇宙最多的两个元素是什么
- 解析2023年高考北京数学卷:追根溯源考“四基” 创新情境查能力_环球要闻
- 2023年6月7日河南省铝矿石价格最新行情预测
- 每日热讯!佳木斯领导调研地面站项目
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
使用THREEJS实现一个可调节档位、可摇头的电风扇 世界短讯
(资料图片仅供参考)
夏天到了,用Three.js
实现一个可以摇头和调节档位的电风扇。主要使用到Blender
处理3D模型,用Vite
+Typescript
搭建项目框架。效果演示:
一、处理模型
1、从爱(bai)给(gei)网下载一个风扇的3D模型,在Blender中打开,给模型贴上图。2、拆解模型。将风扇模型拆解成按钮、底座、扇叶、头部四个部分,其中按钮共五个,包括四个档位和一个摇头的开关。3、导出模型。导出GLTF
格式模型。
二、场景搭建
1、初始化场景
this.scene = new THREE.Scene();/** 摄像机 */this.camera = new THREE.PerspectiveCamera(75, this.sizes.width / this.sizes.height, 0.1, 100);this.camera.position.set(0, 0.8, 1.8);/** 灯光 */this.lightPoint = new THREE.HemisphereLight(0xffffff, 0xffffff, 1 );this.lightPoint.position.set(0, 500, 0);this.scene.add(this.lightPoint);/** 控制器 */this.controls = new OrbitControls(this.camera, this.renderer.domElement);this.controls.enableKeys = false; // 禁用按键this.controls.enableZoom = false; // 禁用缩放this.controls.enablePan = false; // 禁用拖拽this.controls.maxPolarAngle = 1.3; // 最大垂直旋转角度this.controls.minPolarAngle = 1.3; // 最小垂直旋转角度this.controls.target = new THREE.Vector3(0, 0.8, 0);
2、加载模型
import { GLTF, GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader";var gltf: GLTF = await new Promise((resolve, _) => new GLTFLoader().load("./fan.glb", gltf => resolve(gltf)));this.scene.add(gltf.scene);
3、绑定风扇按钮
this.fan = new Fan(gltf);/** 档位调节按钮 */let btns: Array<[string, Level]> = [["Btn_1", Level.one],["Btn_2", Level.two],["Btn_3", Level.three],["Btn_4", Level.zero],];btns.forEach(([name, level]) => {let btn = gltf.scene.getObjectByName(name);if (btn) this.fan.btns.push(new LevelBtn(btn, level));});/** 摇头按钮 */let btn = gltf.scene.getObjectByName("Shake");if (btn) this.fan.btns.push(new ShakeBtn(btn));
三、功能实现
1、扇叶旋转
function update() {let leaf = this.obj.scene.getObjectByName("Leaf");let rotationY = leaf!.rotation.y + Math.PI/10 * this.speed;while(rotationY > Math.PI * 2) rotationY = rotationY - Math.PI * 2;leaf!.rotation.y = rotationY;requestAnimationFrame(() => update());}
2、档位调节
import { gsap } from "gsap";function turnLevel(btn: LevelBtn) {if(btn.state == BtnState.down) return;this.btns.filter(item => item instanceof LevelBtn).forEach(item => item.up());btn.down();if(btn.level !== Level.zero) this.state = State.on;this.level = btn.level;gsap.to(this, 3, { speed: this.level });}
3、左右摇头
let head = this.obj.scene.getObjectByName("Head");let shake = this.obj.scene.getObjectByName("Shake");let leaf = this.obj.scene.getObjectByName("Leaf");let rotationZ = head!.rotation.z + Math.PI / 1000 * this.shakeDir;if(Math.abs(rotationZ) > Math.abs(this.shakeRange)) {let shakeDir = this.shakeDir;setTimeout(() => {if(shakeDir == ShakeDir.left) this.shakeDir = ShakeDir.right;else if(shakeDir == ShakeDir.right) this.shakeDir = ShakeDir.left;}, 1000)this.shakeDir = ShakeDir.wait;rotationZ = Math.abs(this.shakeRange) * Math.abs(rotationZ) / rotationZ;}head!.rotation.z = rotationZ;leaf!.rotation.z = rotationZ;shake!.rotation.z = rotationZ;
四、最后
项目代码和演示地址:https://codesandbox.io/p/sandbox/threejs-mini-fans-dx6nm6
关键词:
使用THREEJS实现一个可调节档位、可摇头的电风扇 世界短讯
【环球速看料】西力科技:中标1.26亿元国家电网电能表采购项目
焦点信息:中国的油车时代过去了!大众关闭在中国建的第一座工厂
只用45分钟!女驴友被秃鹫吃得只剩一副白骨
近6成应届生没工作 企业招聘要求扎心:名校出身仅排第5 更高学历根本不重要
天天微速讯:7大AI比拼高考作文 语文老师打分:一大批学生该恐慌了
腾讯《无畏契约》国服今日终测:服务器全天开放、20名英雄爽玩
小摩:予招商银行(03968)“增持”评级 目标价70港元
南开区市场监管局强化高考、中考期间食品安全监管保障工作
环球快看:广丰区气象台更新雷电黄色预警信号【III级/较重】【2023-06-08】
氧化铝6月19日期货挂牌交易 后市铝价走向如何?
聚焦:雷阵雨+8级阵风,将影响晚高峰!天津发布雷雨大风蓝色预警
每日视讯:天津向渤海湾增殖放流各种苗种超100万尾
宇宙最多的两个元素是氢和什么_宇宙最多的两个元素是什么
解析2023年高考北京数学卷:追根溯源考“四基” 创新情境查能力_环球要闻
2023年6月7日河南省铝矿石价格最新行情预测
每日热讯!佳木斯领导调研地面站项目
国网陇南供电公司:机械化施工助重点工程建设
全球快消息!珲春市气象台发布雷电黄色预警【III级/较大】【2023-06-07】
【全球新视野】@所有人 一起为每一位考生送上祝福!
南向资金今日净买入2.41亿港元|每日报道
散文丨水运宪:我的峡谷我的村
金百泽:公司未直接向英伟达供货
通光线缆:目前暂无产品应用在大模型计算的配套中
每日热文:吉视传媒:公司目前没有发展和推动有esim卡业务
今日热文:2012年以来首次下跌!英国5月Halifax房价同比下降1%
生活歌手_关于生活歌手介绍|每日报道
【机构关注】6月6日机构评级调高的个股 天天观察
天龙集团:公司四大系统平台已初步实现AI升级植入的运营模式 热讯
黑龙江汤原交通运输执法大队开展爱心送考
与其争夺国内第三座迪士尼,不如自己“支棱起来”
天天看热讯:中消协提示警惕培训班退费骗局
环球新动态:广东省发文进一步完善和落实积极生育支持措施
中国电信e8套餐可以用吗(中国电信e8套餐)_每日热点
世界滚动:世界房车锦标赛历届冠军(瑞典房车锦标赛2)
快看点丨各方详解公募REITs价格波动:长期投资者更看重产品分红
澳第一大行澳大利亚联邦银行禁止员工使用ChatGPT 采用自有AI系统|世界最新
创新“三问”工作法 激发人才工作“调研力”
光明时评:地面沉降致3000余人被迫离家,该如何善后 每日消息
北京住建委:已购共有产权住房取得不动产权证未满5年 不允许转让房屋产权份额_全球今热点
本科毕业可以报考中级经济师吗?
南昌市已安排近3.32亿元衔接资金赋能乡村振兴 世界消息
键盘有些键没反应是怎么回事_键盘有些键失灵怎么办
【报资讯】爱因斯坦说光速不可超越,若两束光反向发射,不就2倍光速了吗?
每日关注!济南高考生忘带身份证,民警5秒钟打出临时身份证明
济南高考生忘带身份证,民警5秒钟打出临时身份证明
当前看点!威宁县气象台发布雷电黄色预警信号【Ⅲ/较重】【2023-06-07】
环球速读:异动快报:国芳集团(601086)6月7日14点23分触及涨停板
天天速递!网络刷单被骗,对方已经拉黑我了。店铺申请退款是虚拟店铺,已经超过六个小时了
金百泽:公司未直接向英伟达供货
数据结构 in Golang:Hash Tables(哈希表)
澳柯玛(600336)6月7日主力资金净买入96.02万元 世界视点
世界杯乒乓球比赛规则是什么_环球新动态
期市收评 | 商品市场多数收跌 甲醇跌超3%
2023世界人工智能大会主题和主视觉发布,将于7月6—8日在上海举办|每日头条
世界新消息丨2023毕业生预计1158万创历史新高 近6成求职者3-5千就干
华为618福利:99元换电池、手机内存升级、昆仑玻璃更换_当前简讯
很潮很走心的晚安心语
华晨宇专辑销量(史上销量最高的专辑)_焦点速看
SPSS25.0中文破解版安装教程及使用教程 天天动态
数据结构与算法-08堆 全球最新
皙怎么读_硒怎么读
最新预警!雷雨大风!
美联储也进入静默期 金价维持窄幅震荡-每日速读
地产启示录丨嘉凯城:转型遇阻,24年南柯一梦
珍贵版本传承文明的初心坚守 展现新中国文化建设繁荣景象|环球即时看
寻找中国制造·隐形冠军——新声科技,以智慧聆听变革助听器产业_天天讯息
四川首个“高校禁毒教育联盟”在成都市郫都区成立_环球热资讯
金百泽:研发了400G光模块PCB关键工艺技术
中国科研人员研发出新型多孔光催化剂|环球关注
广东2023年夏季高考首场考试顺利进行,70万考生奔赴考场
康乐县这个搬迁安置项目正在加速建设 最资讯
广聚能源:公司没有原油进口资质及配额|热文
林州市常家岭核桃3_关于林州市常家岭核桃3概略_当前焦点
天天快讯:长园集团(600525)6月7日主力资金净买入164.96万元
环球简讯:文心一言 VS 讯飞星火 VS chatgpt (34)-- 算法导论5.3 1题
通讯!ASP.NET Core MVC 从入门到精通之Html辅助标签(一)
江淮汽车(600418)6月7日主力资金净卖出7528.15万元_当前热议
天天滚动:新钢股份:拟向欧冶工业品进行股权投资 增资金额不超过2亿元
高考组图丨湖南考生有力量的表情来了 全球微动态
喜报:黑龙江能源职业学院在2023第三届“心上的中国”全国大学生525心理知识大赛中获佳绩 世界独家
库克回应Vision Pro价格昂贵:这是目前最先进的电子设备
全球速看:被骗好多年!《七龙珠》战力排名更新:地球人三强改写
乘联会:初步统计今年5月乘用车市场零售175.9万辆 新能源暴增55%
最贵一杯42元!茅台跨界卖咖啡 官方称门店自发行为 天天滚动
不砍单好价!苹果iPhone 14到手仅4949元_关注
我父亲目前得了胃癌晚期,失去工作能力,家里有一套房子需要还贷款
视焦点讯!今日黄金td行情分析(2023年6月7日)
防水卷材施工工艺流程及施工方案(防水卷材施工工艺) 天天讯息
6月6日2年期国债期货主力合约TS2309上行0.07%
组图|2023年海南陵水黎安国际教育创新试验区知识产权沙龙活动举行 环球微头条
广州软件学院外语系在太平中学举行“大学生社会实践基地”授牌仪式
环球最新:波音公司回应787飞机发现问题:影响近期交付
红豆股份(600400)6月7日主力资金净卖出420.99万元
@快递小哥、网约车司机 这里免费理发啦!_焦点速递
广安市10个国、省考核断面水质优良比例达到100%|焦点热讯
上海推出今年第五批次集中供应楼盘,备案均价最高8.91万元/平方米 当前看点
和林微纳:公司主要为NVIDIA供应中高端FT测试探针及相关零组件 信息
理性看待REITs市场波动 回归长期价值投资
甘肃高考志愿abcdef段什么意思?|今日视点