ThreeJS:坐标辅助器与轨道控制器

ThreeJS与右手坐标系

使用ThreeJS创建3D场景时,需要使用一个坐标系来定位和控制对象的位置和方向。

ThreeJS使用的坐标系是右手坐标系,即:X轴向右、Y轴向上、Z轴向前,如下图所示,
ThreeJS-右手坐标系

Tips:右手坐标系下的右手规则是指,将右手伸出,并将大拇指方向指向X轴的正方向,食指指向Y轴的正方向,中指指向Z轴的正方向。

添加坐标辅助器

ThreeJS提供了AxesHelper类,用于简单模拟3个坐标轴的对象,其中:红色代表 X 轴. 绿色代表 Y 轴. 蓝色代表 Z 轴.

为了方便指示当前场景的坐标轴朝向,可以向场景添加AxesHelper坐标辅助器。

使用坐标辅助器

javascript 复制代码
//TODO:创建坐标辅助器
const axesHelper = new THREE.AxesHelper(5);
scene.add(axesHelper);

坐标辅助器效果

添加轨道控制器

轨道控制器是ThreeJS提供的一个非常实用的工具,它可以帮助用户更加轻松的探索3D场景------通过鼠标或者触摸屏交互的方式,实现3D场景的平移、旋转、缩放操作,从而改变相机的观察视角。

使用轨道控制器

ThreeJS提供了Orbit controls(轨道控制器)可以使得相机围绕目标进行轨道运动。

javascript 复制代码
//TODO:轨道控制器
const orbitControls = new OrbitControls(camera, renderer.domElement);
orbitControls.update();

在循环渲染函数中,调用update()方法,更新渲染器,

javascript 复制代码
//TODO:渲染函数
function animate() {
  requestAnimationFrame(animate);
  //TODO:更新轨道控制器
  orbitControls.update();
  //TODO:渲染
  renderer.render(scene, camera);
}

注意点:更改相机视角之后,必须手动调用update方法更新控制器。

轨道控制器效果

通过鼠标修改相机视角,

设置轨道控制器的属性

OrbitControls轨道控制器包含很多属性,通过设置属性,可以限定可平移、旋转、缩放的范围,以及阻尼效果、阻尼系数、自动旋转、自动旋转系数等。

相关推荐
Huangxy__29 分钟前
java相机手搓(后续是文件保存以及接入大模型)
java·开发语言·数码相机
格林威33 分钟前
如何用 eBPF 监控 GigE Vision 相机网络性能
网络·人工智能·数码相机·yolo·计算机视觉·视觉检测·工业相机
nashane1 小时前
HarmonyOS 6学习:相机预览画面拉伸全解析——告别变形,打造完美相机预览体验
数码相机·harmonyos 5
格林威21 小时前
AI视觉检测:Jetson Orin vs RTX A2000 推理速度对比
人工智能·数码相机·机器学习·计算机视觉·视觉检测·机器视觉·工业相机
qq_12084093712 天前
Three.js 大场景分块加载实战:从全量渲染到可视集调度
开发语言·javascript·数码相机
格林威2 天前
工业视觉检测:OpenCV FPS 正确计算的方式
运维·人工智能·数码相机·opencv·机器学习·计算机视觉·视觉检测
格林威3 天前
AI视觉检测:模型量化后漏检率上升怎么办?
人工智能·windows·深度学习·数码相机·计算机视觉·视觉检测·工业相机
gaosushexiangji3 天前
用于焊接机理研究的高速相机选型参考:S1315在激光电弧复合焊接熔池观测中的实验验证
数码相机
AGV算法笔记3 天前
最新感知算法论文分析:RaCFormer 如何提升雷达相机 3D 目标检测性能?
数码相机·算法·3d·自动驾驶·机器人视觉·3d目标检测·感知算法
三维频道3 天前
光学像素重构物理真实:极限工况下的 DIC 全场测量逻辑
数码相机·重构·全场应变测量·数字图像相关技术·可靠性测试·cae仿真对比·无损检测