Three.js 变换 Box3教程
📅 2026/7/2 19:49:16
👁️ 次浏览
变换 Box3 ·Box3 Helper· ▶ 在线运行案例案例合集三维可视化功能案例threehub.cn开源仓库github地址https://github.com/z2586300277/three-cesium-examples400个案例代码:网盘链接你将学到什么Box3.setFromObject计算物体世界空间 AABBBox3Helper可视化黄色包围盒TransformControlschange事件驱动包围盒刷新效果说明Fox 模型挂载 TransformControls拖拽时黄色线框包围盒跟随更新直观看到物体占用空间。核心概念const box3 new THREE.Box3();const box3Helper new THREE.Box3Helper(box3, 0xffff00); scene.add(box3Helper);transformControls.addEventListener(change, () { box3Helper.box box3.setFromObject(transformControls.object); });AABB轴对齐包围盒不随物体旋转而旋转始终与世界轴平行适合碰撞粗测、视图 fit。代码要点import * as THREE from threeimport { OrbitControls } from three/examples/jsm/controls/OrbitControls.js import { GLTFLoader } from three/addons/loaders/GLTFLoader.js import { TransformControls } from three/examples/jsm/controls/TransformControls.js import { RGBELoader } from three/examples/jsm/loaders/RGBELoader.js import { GUI } from three/addons/libs/lil-gui.module.min.js;const box document.getElementById(box)const scene new THREE.Scene()const camera new THREE.PerspectiveCamera(50, box.clientWidth / box.clientHeight, 0.1, 1000)camera.position.set(0, 3, 6)const renderer new THREE.WebGLRenderer({ antialias: true, alpha: true, logarithmicDepthBuffer: true })renderer.setSize(box.clientWidth, box.clientHeight)renderer.shadowMap.needsUpdate truerenderer.shadowMap.enabled truebox.appendChild(renderer.domElement)const controls new OrbitControls(camera, renderer.domElement)controls.enableDamping trueconst folder new GUI()// 变换控制器 const transformControls new TransformControls(camera, renderer.domElement)folder.add(transformControls, mode, [translate, rotate, scale]).name(模式)const transformControlsRoot transformControls.getHelper()transformControls.addEventListener(dragging-changed, event controls.enabled !event.value)const box3 new THREE.Box3()const box3Helper new THREE.Box3Helper(box3, 0xffff00)scene.add(box3Helper)transformControls.addEventListener(change, () box3Helper.box box3.setFromObject(transformControls.object))scene.add(transformControlsRoot)// 模型 const texture new RGBELoader().load(FILE_HOST /files/hdr/1k.hdr, t t.mapping THREE.EquirectangularReflectionMapping)new GLTFLoader().load(GLOBAL_CONFIG.getFileUrl(files/model/Fox.glb), (gltf) {const model gltf.scenemodel.scale.set(0.01, 0.01, 0.01)model.traverse((child) child.isMesh (child.material.envMap texture))scene.add(model)transformControls.attach(model)})animate()function animate() {requestAnimationFrame(animate)controls.update()renderer.render(scene, camera)}完整源码GitHub小结本文提供变换 Box3完整 Three.js 源码与在线 Demo建议先运行案例再改 uniform/参数做二次实验更多 Three.js 实战案例见 three-cesium-examples 合集 与 GitHub 开源仓库
如果你在工业视觉项目中遇到过这样的困境:模型在测试集上表现优异,一到产线就掉帧、误检、漏检,甚至因为环境变化直接“罢工”——那么这篇文章就是为你准备的。YOLOv8作为当前工业检测领域最热门的模型之一,其真正的价值远不止于…
📅 2026/7/2 19:49:16
智能视频解构师:让AI为你深度解读视频内容 【免费下载链接】video-analyzer Analyze videos using LLMs, Computer Vision and Automatic Speech Recognition 项目地址: https://gitcode.com/gh_mirrors/vi/video-analyzer
在信息爆炸的时代,视频…
📅 2026/7/2 19:49:16
Cursor iOS版:代码开发移动新体验6月30日,Cursor推出iOS版移动端应用并进入公开测试,面向付费计划用户开放。用户打开应用后,能选择代码仓库、模型,通过语音输入或斜杠命令启动Agent。还可远程控制电脑上运行的Agent&a…
📅 2026/7/2 19:47:16
openeuler/kiran-manual文档库全解析:从图片到Markdown的完美组织方案 【免费下载链接】kiran-manual User manual for Kiran desktop environment and desktop applications 项目地址: https://gitcode.com/openeuler/kiran-manual
前往项目官网免费下载&am…
📅 2026/7/2 20:57:27
rat多线程优化原理:深度解析Linux splice系统调用的高效实现 【免费下载链接】rat This project is refactoring the cat tool with rust. 项目地址: https://gitcode.com/openeuler/rat
前往项目官网免费下载:https://ar.openeuler.org/ar/
rat…
📅 2026/7/2 20:57:27
GetQzonehistory:找回丢失的QQ空间青春记忆,一键保存你的数字时光 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory
你是否曾经试图翻看多年前的QQ空间说说&#x…
📅 2026/7/2 20:57:27
在日常刷短视频、搜集学习素材的过程中,很多人都会遇到视频自带水印的问题,水印不仅影响视频观感,还会导致素材无法正常收藏、剪辑学习。2026年主流的视频平台水印规则持续更新,不少老旧去水印工具已经失效,很多用户都…
📅 2026/7/2 20:57:27
hpcpilot与Ansible集成:自动化运维工具链的完美结合 【免费下载链接】hpcpilot A collection of HPC delivery tools, including basic system configuration, node inspection, performance testing, third-party service installation, etc. 项目地址: https://…
📅 2026/7/2 20:57:27
openEuler/CCA进阶:如何定制化配置Realm VM并优化性能? 【免费下载链接】CCA ARM Confidential Computing Architecture stacks and solutions 项目地址: https://gitcode.com/openeuler/CCA
前往项目官网免费下载:https://ar.openeul…
📅 2026/7/2 20:55:27
1. 项目概述:从“能用”到“精通”的必经之路如果你正在学习或从事网络安全测试,尤其是Web应用安全评估,那么BurpSuite的Intruder模块绝对是你绕不开的核心工具。而Intruder模块里,功能最强大、也最让人又爱又恨的,莫过…
📅 2026/7/2 0:00:33
1. 项目概述:从“找东西”到“精准操控” 做自动化测试,尤其是Web UI自动化,最核心也最让人头疼的一步是什么?不是写复杂的业务逻辑,也不是处理异步加载,而是最基础的—— 让程序找到页面上那个你想操作的…
📅 2026/7/2 0:00:33
1. 项目概述:为什么是Maestro? 如果你正在寻找一个能让你快速上手、告别繁琐配置、并且对移动端UI自动化测试真正友好的框架,那么Maestro很可能就是你一直在等的那个答案。我接触过Appium、Espresso、XCUITest,也折腾过各种基于图…
📅 2026/7/2 0:00:33
6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…
📅 2026/7/2 17:37:53
引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…
📅 2026/7/2 17:37:51
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/2 1:17:03
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/2 9:49:12
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/2 1:36:45