当前位置: 首页 > news >正文

【2-入门与调试设置】1.坐标辅助器与轨道控制器

文章目录

  • 前言
  • 坐标辅助器的使用
  • 轨道控制器的使用


前言

快速入门开发三维场景时,坐标辅助器和轨道控制器是关键工具。坐标辅助器通过线段形式显示世界坐标系,帮助开发者明确物体位置。而轨道控制器则通过监听页面事件,如鼠标滚轮和滑动,控制相机旋转、缩放和平移,并可实现带阻尼的平滑运动。此外,控制器支持自定义属性,如自动旋转和监听事件对象,以更灵活地控制三维场景。

坐标辅助器的使用

当我们在 three.js 中创建 3D 场景时,我们需要使用一个坐标系来定位和控制对象的位置和方向。three.js 使用的坐标系是右手坐标系,这意味着 X 轴向右,Y 轴向上,Z 轴指向屏幕外。

在右手坐标系中,我们可以使用右手规则来确定一个向量的方向。右手规则指的是,将右手伸出,并将大拇指指向 X 轴的正方向,食指指向 Y 轴的正方向,中指指向 Z 轴的正方向。这样,我们就可以通过确定三个轴的正方向来确定一个向量的方向。

在这里插入图片描述

在官网搜索打开 AxesHelper 类官方文档

在这里插入图片描述

坐标辅助器显示 X、Y、Z 三个轴,红色为 X 轴,绿色为 Y 轴,蓝色为 Z 轴。

const axesHelper = new THREE.AxesHelper(5)
scene.add(axesHelper)

在这里插入图片描述


轨道控制器的使用

轨道控制器用于控制相机的位置和方向,实现拖动、旋转和缩放等操作。 2.在 Three.js 模块中导入轨道控制器,通过 new 创建控制器实例。 3.轨道控制器监听页面事件,如鼠标滚轮滚动,实现相机的旋转和缩放。 4.可以设置阻尼系数,使相机移动具有惯性,看起来更自然。 5.可以设置自动旋转和旋转速度,通过监听 body 事件实现全局控制。 6.禁用旋转、平移和缩放功能,以更好地控制相机。

官网搜索打开 OrbitControls 类官方文档可以查看到轨道控制器的属性和方法,如何使用。

import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js'controls = new OrbitControls(camera, renderer.domElement)
// 将其设置为true以启用阻尼(惯性),这将给控制器带来重量感
controls.enableDamping = true
// 当.enableDamping设置为true的时候,阻尼惯性有多大,默认0.05 值越大,阻尼越大,惯性越小
controls.dampingFactor = 0.05
// 当controls对象状态改变时触发的事件 调试输出controls的位置和目标信息
controls.addEventListener('change', function () {console.log(controls.object.position, camera.position)console.log(controls.target)
})function animate() {requestAnimationFrame(animate)controls.update()renderer.render(scene, camera)
}

相关文章:

  • 如何用dreamer做网站制作企业网站
  • 有代做医学统计图的网站吗网店代运营收费
  • 杭州集团公司网站制作网站大全
  • 外贸公司都是在什么网站做推广营销活动推广策划
  • 唐山网站建设拓怎么做游戏推广员
  • 你的网站正在建设中太原seo推广
  • 【论文阅读】--Instruction Backdoor Attacks Against Customized LLMs
  • CTF:PHP 多关卡绕过挑战
  • 在vue3中,如何修改ant-deaign-vue tooltip的样式
  • 第4篇:响应处理——返回数据给客户端(Gin文件下载,JSON,XML等返回)
  • 2024考研数一真题及答案
  • 独立站安全收款实战:AB站隔离与风控
  • HDC 2025丨华为云AI原生中间件,构建应用运行的领先架构
  • swiftUI iOS16和iOS15兼容
  • 2025最新 WSL(Windows Subsystem for Linux)安装教程 (保姆级,图文讲解,带安装包)
  • 超声波清洗机相对于传统清洗方法有哪些优势?
  • 【25软考网工】第十章 网络规划与设计(2)网络规划与分析、网络结构与功能
  • 爬虫简单实操2——以贴吧为例练习
  • 阅读服务使用示例(HarmonyOS Reader Kit)
  • Spring 框架
  • 人大金仓Kingbase数据库KSQL 常用命令指南
  • Vue-15-前端框架Vue之应用基础编程式路由导航
  • Node.js特训专栏-实战进阶:9.MySQL连接池配置与优化
  • leetcode 65
  • A模块 系统与网络安全 第三门课 网络通信原理
  • react - ReactRouter—— 路由传参