Three.js 物理cannon使用教程
物理cannon使用 ·Physics Mesh· ▶ 在线运行案例案例合集三维可视化功能案例threehub.cn开源仓库github地址https://github.com/z2586300277/three-cesium-examples400个案例代码:网盘链接你将学到什么OrbitControls 相机轨道交互物理引擎刚体碰撞requestAnimationFrame渲染循环与resize自适应效果说明本案例演示物理cannon使用效果基于 WebGL 实现「物理cannon使用」可视化效果附完整可运行源码核心用到 OrbitControls、物理引擎刚体碰撞。建议先打开文首在线案例查看动态画面再对照下方源码逐步理解。核心概念OrbitControls轨道旋转缩放开enableDamping时每帧需controls.update()。实现步骤搭建 Scene / Camera / Renderer 与 OrbitControlsrAF 循环中 update 并 render代码要点import * as THREE from threeimport { OrbitControls } from three/examples/jsm/controls/OrbitControls.js import * as CANNON from cannon-es;const box document.getElementById(box)const scene new THREE.Scene()const camera new THREE.PerspectiveCamera(75, box.clientWidth / box.clientHeight, 0.1, 1000)camera.position.set(0, 10, 10)const renderer new THREE.WebGLRenderer()renderer.setSize(box.clientWidth, box.clientHeight)box.appendChild(renderer.domElement)new OrbitControls(camera, renderer.domElement)scene.add(new THREE.AxesHelper(5000), new THREE.AmbientLight(0xffffff, 0.5))const pointLight new THREE.PointLight(0xffffff, 3, 0)pointLight.position.set(0, 2, 0)scene.add(pointLight)const world new CANNON.World({ gravity: new CANNON.Vec3(0, -9.82, 0) })// 渲染时间略有不同的时间显示物理模拟的状态 world.PhysicsRender (deltaTime) {world.step(1 / 60, deltaTime, 3)world.bodies.forEach(body body.render?.())}// 创建一个立方体 const cubeGeometry new THREE.BoxGeometry(1, 1, 1)const cubeMaterial new THREE.MeshStandardMaterial({ color: 0xffffff })const cubeMesh new THREE.Mesh(cubeGeometry, cubeMaterial)cubeMesh.position.set(0, 5, 0)createPhysicsBody(world, cubeMesh, 1)scene.add(cubeMesh)// 创建一个平面 const planeGeometry new THREE.PlaneGeometry(10, 10)const planeMaterial new THREE.MeshStandardMaterial({ color: 0xffffff, side: THREE.DoubleSide })const planeMesh new THREE.Mesh(planeGeometry, planeMaterial)planeMesh.rotation.x Math.PI / 2createPhysicsBody(world, planeMesh, 0)scene.add(planeMesh)animate()function animate() {requestAnimationFrame(animate)world.PhysicsRender()renderer.render(scene, camera)}window.onresize () {renderer.setSize(box.clientWidth, box.clientHeight)camera.aspect box.clientWidth / box.clientHeightcamera.updateProjectionMatrix()}function createPhysicsBody(PhysicsWorld, model, mass) {const box new THREE.Box3().setFromObject(model);const { max, min } boxconst center new THREE.Vector3();box.getCenter(center);const body new CANNON.Body({mass: mass,shape: new CANNON.Box(new CANNON.Vec3((max.x - min.x) / 2, (max.y - min.y) / 2, (max.z - min.z) / 2)),position: center,})body.position.copy(model.position)PhysicsWorld.addBody(body)body.render () model.position.copy(body.position)}完整源码GitHub小结本文提供物理cannon使用完整 Three.js 源码与在线 Demo建议先运行案例再改 uniform/参数做二次实验更多 Three.js 实战案例见 three-cesium-examples 合集 与 GitHub 开源仓库

相关新闻

不用加装基站标签,纯视觉视频孪生实现全域厘米级无感定位

不用加装基站标签,纯视觉视频孪生实现全域厘米级无感定位

不用加装基站标签,纯视觉视频孪生实现全域厘米级无感定位研发主体:镜像视界浙江科技有限公司 权威资质:国家十四五重点课题研究、镜像视界浙江普陀时空大数据应用技术联合研究院联合研发、河南省电检院权威机构认证 技术定位:行业…

2026/7/6 8:04:41阅读更多 →
AI 时代 结构 AI Agent技术

AI 时代 结构 AI Agent技术

1.引言随着agent的发展,越来越多的企业会将AI agent 去接入他们的核心业务。比如自动化工作流来提升效率或者数据的实时分析,经过推理之后进行告警等等现在市面上这么多AI应用产品和agent的开发框架比如Manus、OpenClaw、LangChain、Dify、Spring AI、Al…

2026/7/6 8:04:41阅读更多 →
命令行快捷键

命令行快捷键

常用跳转命令速查表命令作用cd ..返回到上一级目录cd ../..返回到上两级目录cd \返回到当前盘符的根目录cd /d D:\target切换到 D 盘的 target 文件夹(跨盘符)D:(前面要加空格)切换到 D 盘(不改变目录)cd ~…

2026/7/6 8:04:41阅读更多 →
01.04.02.DeepSeek:环境搭建篇(轻量化本地部署工具Ollama:使用nomic-embed-text文本嵌入模型)

01.04.02.DeepSeek:环境搭建篇(轻量化本地部署工具Ollama:使用nomic-embed-text文本嵌入模型)

操作流程 1、下载安装2、配置3、测试下载安装 # https://ollama.com/library/deepseek-r1 选择版本 # 使用Ollama安装Deepseek # 在线下载安装 ollama pull nomic-embed-text

2026/7/6 11:20:55阅读更多 →
01.04.01.DeepSeek:环境搭建篇(轻量化本地部署工具Ollama:安装配置)

01.04.01.DeepSeek:环境搭建篇(轻量化本地部署工具Ollama:安装配置)

操作流程 1、下载安装2、配置3、测试 下载安装 准备期 su setenforce 0mkdir -p /usr/local/software/ollama & mkdir -p /usr/local/software/ollama/models chmod 0777 -R /usr/local/software/ollama /usr/local/software/ollama/models chown $USER:$USER -R /u…

2026/7/6 11:20:55阅读更多 →
鸿蒙OS文件加密实战:从算法选型到性能优化全解析

鸿蒙OS文件加密实战:从算法选型到性能优化全解析

1. 项目概述:为什么鸿蒙OS的文件加密值得深挖?最近在折腾一个企业级的鸿蒙应用,里面涉及到大量敏感文档的本地存储和跨设备同步。客户对安全的要求近乎苛刻,不仅要符合国密标准,还得保证用户点开一个几十兆的PDF时&…

2026/7/6 11:20:55阅读更多 →
AD74413R与STM32F732IE实现高精度ADC/DAC方案

AD74413R与STM32F732IE实现高精度ADC/DAC方案

1. 项目背景与核心需求在工业自动化、测试测量和音频处理等领域,经常需要同时实现高精度模拟信号采集(ADC)和输出(DAC)功能。传统方案往往需要分别使用独立的ADC和DAC芯片,这不仅增加了系统复杂度&#xff…

2026/7/6 11:20:55阅读更多 →
01.02.02.DeepSeek:环境搭建篇(数据库插件 PGVector 向量数据库)

01.02.02.DeepSeek:环境搭建篇(数据库插件 PGVector 向量数据库)

操作流程 1、下载安装2、配置3、测试下载安装 PGVector:向量数据库扩展 cd /usr/local/software git clone https://github.com/pgvector/pgvector.git cd /usr/local/software/pgvector make -j$(nproc) PG_CONFIG/usr/local/software/postgresql/data/pgsql/bin/pg_config m…

2026/7/6 11:20:55阅读更多 →
Plone 6开发实战:从零搭建可治理的内容平台

Plone 6开发实战:从零搭建可治理的内容平台

1. 这不是一份“Plone入门指南”,而是一份真实踩坑十年后的重启手记 “How do I get started using Plone?”——这句话我见过太多次。不是在Stack Overflow的冷门帖子里,而是在凌晨两点的Slack频道里,一个刚接手政府旧系统维护的运维工程师…

2026/7/6 11:15:55阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/6 4:26:20阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/6 2:48:33阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/6 0:10:35阅读更多 →
Seraphine:基于LCU API的英雄联盟智能游戏助手技术解析与应用指南

Seraphine:基于LCU API的英雄联盟智能游戏助手技术解析与应用指南

Seraphine:基于LCU API的英雄联盟智能游戏助手技术解析与应用指南 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine 技术架构先行:官方接口的合规应用 你是否曾在BP阶段手忙脚乱&#x…

2026/7/6 0:03:39阅读更多 →
多协议远程连接管理工具mRemoteNG:告别混乱,统一你的远程桌面管理

多协议远程连接管理工具mRemoteNG:告别混乱,统一你的远程桌面管理

多协议远程连接管理工具mRemoteNG:告别混乱,统一你的远程桌面管理 【免费下载链接】mRemoteNG mRemoteNG is the next generation of mRemote, open source, tabbed, multi-protocol, remote connections manager. 项目地址: https://gitcode.com/gh_m…

2026/7/6 0:03:39阅读更多 →
COUNT(DISTINCT) 与 GROUP BY 去重统计:5 亿数据量下的性能实测与选型指南

COUNT(DISTINCT) 与 GROUP BY 去重统计:5 亿数据量下的性能实测与选型指南

COUNT(DISTINCT) 与 GROUP BY 去重统计:5 亿数据量下的性能实测与选型指南在数据分析和处理领域,去重统计是最基础也是最频繁使用的操作之一。当数据量达到亿级规模时,不同的去重统计方法在性能上可能产生天壤之别。本文将基于 5 亿行数据的实…

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

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

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

2026/7/6 4:45:01阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

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

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

2026/7/6 4:45:01阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

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

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

2026/7/6 4:45:03阅读更多 →