Three.js 拖拽控制教程
拖拽控制 ·Transform Controls· ▶ 在线运行案例案例合集三维可视化功能案例threehub.cn开源仓库github地址https://github.com/z2586300277/three-cesium-examples400个案例代码:网盘链接你将学到什么TransformControls三种模式 translate / rotate / scaleattach(object)绑定要操控的 Object3D拖拽时禁用 OrbitControls避免冲突效果说明GUI 可切换模式并将控制器attach到 Fox 模型、平行光或地面平面拖拽 gizmo 实时变换对象。核心概念const transformControls new TransformControls(camera, renderer.domElement);scene.add(transformControls.getHelper());transformControls.addEventListener(dragging-changed, event { controls.enabled !event.value; // 拖拽中关掉轨道控制 });folder.add(transformControls, mode, [translate, rotate, scale]); transformControls.attach(model);| 模式 | 快捷键默认 | 作用 | |------|---------------|------| | translate | W | 平移 | | rotate | E | 旋转 | | scale | R | 缩放 |代码要点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 { 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)// 模式 translate | rotate | scale folder.add(transformControls, mode, [translate, rotate, scale]).name(模式)const transformControlsRoot transformControls.getHelper()scene.add(transformControlsRoot)transformControls.addEventListener(dragging-changed, event {controls.enabled !event.value})window.onresize () {renderer.setSize(box.clientWidth, box.clientHeight)camera.aspect box.clientWidth / box.clientHeightcamera.updateProjectionMatrix()}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) {if (child.isMesh) child.castShadow true})scene.add(model)folder.add({ 控制模型: () transformControls.attach(model) }, 控制模型)})const pointLight new THREE.DirectionalLight(0xffffff, 1)pointLight.position.set(1, 2, 0)pointLight.castShadow truescene.add(pointLight)folder.add({ 控制光源: () transformControls.attach(pointLight) }, 控制光源)const plane new THREE.Mesh(new THREE.PlaneGeometry(100, 100), new THREE.MeshStandardMaterial({ color: 0xffffff }))plane.position.y - 0.5plane.rotation.x -Math.PI / 2plane.receiveShadow truescene.add(plane)folder.add({ 控制平面: () transformControls.attach(plane) }, 控制平面)animate()function animate() {requestAnimationFrame(animate)controls.update()renderer.render(scene, camera)}完整源码GitHub小结本文提供拖拽控制完整 Three.js 源码与在线 Demo建议先运行案例再改 uniform/参数做二次实验更多 Three.js 实战案例见 three-cesium-examples 合集 与 GitHub 开源仓库

相关新闻

GPT-4稀疏激活真相:万亿参数下的MoE动态路由与显存优化

GPT-4稀疏激活真相:万亿参数下的MoE动态路由与显存优化

1. 项目概述:参数规模与稀疏激活的真相拆解“GPT-4 Has 1.8 Trillion Parameters. It Uses 2% of Them Per Token.”——这句话过去两年在技术社区反复刷屏,常被当作“大模型已突破算力瓶颈”的佐证,也常被误读为“GPT-4只用360亿参数&#x…

2026/7/2 19:42:02阅读更多 →
Docker部署AI视频分析平台完整流程(私有化部署 Docker 核心教程)

Docker部署AI视频分析平台完整流程(私有化部署 Docker 核心教程)

在企业级视觉 AI 项目的落地过程中,私有化部署 Docker 凭借其环境隔离性强、交付速度快、资源损耗低等优势,已成为交付工程师的首选方案。本篇技术教程将以负责 AI 视频分析平台交付的部署工程师视角,为您全方位拆解从环境摸底、容器编排到高…

2026/7/2 19:36:59阅读更多 →
如何一键下载国家中小学智慧教育平台电子课本:tchMaterial-parser终极指南

如何一键下载国家中小学智慧教育平台电子课本:tchMaterial-parser终极指南

如何一键下载国家中小学智慧教育平台电子课本:tchMaterial-parser终极指南 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课…

2026/7/2 19:36:59阅读更多 →
GetQzonehistory:找回丢失的QQ空间青春记忆,一键保存你的数字时光

GetQzonehistory:找回丢失的QQ空间青春记忆,一键保存你的数字时光

GetQzonehistory:找回丢失的QQ空间青春记忆,一键保存你的数字时光 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾经试图翻看多年前的QQ空间说说&#x…

2026/7/2 20:57:36阅读更多 →
2026视频怎么在线去水印?手机电脑免费安全工具及避坑指南

2026视频怎么在线去水印?手机电脑免费安全工具及避坑指南

在日常刷短视频、搜集学习素材的过程中,很多人都会遇到视频自带水印的问题,水印不仅影响视频观感,还会导致素材无法正常收藏、剪辑学习。2026年主流的视频平台水印规则持续更新,不少老旧去水印工具已经失效,很多用户都…

2026/7/2 20:57:36阅读更多 →
hpcpilot与Ansible集成:自动化运维工具链的完美结合

hpcpilot与Ansible集成:自动化运维工具链的完美结合

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:36阅读更多 →
openeuler/kiran-tests高级技巧:自定义测试步骤与复杂场景模拟方法

openeuler/kiran-tests高级技巧:自定义测试步骤与复杂场景模拟方法

openeuler/kiran-tests高级技巧:自定义测试步骤与复杂场景模拟方法 【免费下载链接】kiran-tests Tests for kiran desktop environment 项目地址: https://gitcode.com/openeuler/kiran-tests 前往项目官网免费下载:https://ar.openeuler.org/ar…

2026/7/2 20:57:36阅读更多 →
AI4C对比传统编译器:为什么AI驱动的优化更高效 [特殊字符]

AI4C对比传统编译器:为什么AI驱动的优化更高效 [特殊字符]

AI4C对比传统编译器:为什么AI驱动的优化更高效 🚀 【免费下载链接】AI4C AI4C stands for AI for Compiler Kit, a framework which enables compilers to integrate ML-driven compiler optimizations. 项目地址: https://gitcode.com/openeuler/AI4C…

2026/7/2 20:57:36阅读更多 →
Playwright自动化测试报告增强:失败场景自动截图与录屏实战

Playwright自动化测试报告增强:失败场景自动截图与录屏实战

1. 项目概述与价值定位最近在搞Playwright自动化测试,发现一个挺普遍的问题:测试报告太“素”了。默认的HTML报告或者Pytest自带的输出,在用例失败时,通常就给你一行错误堆栈,顶多附上一张静态截图。对于复杂的交互流程…

2026/7/2 20:52:35阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/7/2 12:10:34阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/7/2 12:10:34阅读更多 →
塞尔达传说旷野之息存档修改器:3分钟掌握海拉鲁世界自由定制技巧

塞尔达传说旷野之息存档修改器:3分钟掌握海拉鲁世界自由定制技巧

塞尔达传说旷野之息存档修改器:3分钟掌握海拉鲁世界自由定制技巧 【免费下载链接】BOTW-Save-Editor-GUI A Work in Progress Save Editor for BOTW 项目地址: https://gitcode.com/gh_mirrors/bo/BOTW-Save-Editor-GUI 想在《塞尔达传说:旷野之息…

2026/7/2 0:03:01阅读更多 →
告别 AccessKey:多云平台 CLI OAuth 免密认证完全指南

告别 AccessKey:多云平台 CLI OAuth 免密认证完全指南

在本地开发环境使用云厂商 CLI 时,传统的 AccessKey(AK)方式需要手动创建、下载和保管密钥,不仅繁琐,还存在泄漏风险。其实,主流云平台都已提供基于 OAuth 2.0 的免密认证方案,让开发者可以通过浏览器登录一次性完成授权,CLI 自动管理临时凭证的刷新,兼顾了便利与安全…

2026/7/2 0:03:01阅读更多 →
基于13DOF传感器与PIC32MZ的高精度嵌入式导航系统设计

基于13DOF传感器与PIC32MZ的高精度嵌入式导航系统设计

1. 项目背景与核心价值在嵌入式系统开发领域,高精度定位与导航一直是极具挑战性的技术方向。传统方案往往面临成本、精度和实时性难以兼顾的困境。这个项目通过13DOF(13自由度)传感器组合与PIC32MZ2048EFH100高性能MCU的协同工作,…

2026/7/2 0:03:01阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/2 0:33:58阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/2 1:32:11阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/2 1:50:13阅读更多 →