018-场景遍历和世界坐标系

该系类文章主要用于记录学习three.js的过程,包括做的一些demo,笔记,以及个人思考;主要学习的课程是 神光的小册《three.js通关秘籍》,感兴趣的可以购买学习,质量还是可以的

坐标系

坐标系的分类的详细解释

坐标系一般分为世界坐标系局部坐标系 ,还有group坐标系

局部坐标系:就是某个物体相对所在group中的坐标

自身坐标系:就是某个物体自身的坐标

世界坐标系:全局坐标系就是把局部坐标系与group坐标系进行合并,所得到的坐标系

坐标系的操作方法

  • 如何获取坐标
ini 复制代码
# 获取全局坐标
const pos = new THREE.Vector3();
mesh.getWorldPosition(pos);
#  获取group坐标
console.log(group.position);
# 获取局部坐标(自身坐标)
console.log(mesh.position);

遍历场景

通常情况下,我们的场景非常的复杂,可能包括很多的分组,分组里面又包含了很多物体,很多时候我们需要获取某一个物体,然后再进行操作,那么如何获取呢?

遍历场景这棵树结构

ini 复制代码
scene.traverse((obj) => {
    if(obj.isMesh) {
        obj.material.color = new THREE.Color('pink');
    }
});

找到某个物体

ini 复制代码
# 通过取名字获取
# 给mesh设置名字
mesh.name = 'abc';
mesh.name = 'eeee';
# 通过名字获取(当然也可以用 id  来获取,设置的时候也用id)
const target1 = scene.getObjectByName('abc');
const target2 = scene.getObjectById('eeee');
相关推荐
军军君016 小时前
Three.js基础功能学习三:纹理与光照
前端·javascript·3d·前端框架·three·三维·三维框架
淡笑沐白6 小时前
Vue3基础语法教程
前端·javascript·vue.js
JIngJaneIL6 小时前
基于java + vue连锁门店管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
Mintopia6 小时前
🧠 从零开始:纯手写一个支持流式 JSON 解析的 React Renderer
前端·数据结构·react.js
消失的旧时光-19436 小时前
Flutter 工程中 mixin 的正确打开方式:5 种高质量设计范式 + mixin vs 继承 vs 组合 + 为什么它比 BasePage 更优雅
前端·flutter·架构
乐吾乐科技6 小时前
乐吾乐3D可视化2025重大更新与2026升级计划
前端·3d·信息可视化·编辑器·数据可视化
C_心欲无痕6 小时前
html - 使用视频做天气卡片背景
前端·html·音视频
毕设十刻7 小时前
基于Vue的养老服务平台85123(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
青衫折扇7 小时前
执行 npm 安装命令时,包被装到了 C 盘用户目录下,而非项目根目录
前端·npm·node.js
XiaoYu20027 小时前
第2章 Nest.js入门
前端·ai编程·nestjs