logo 范 · 拾光录
网址收集 关于作者 Github Gitee
杂文随笔4
Hexo博客:基础使用Hexo博客:Next主题Hexo博客:Next进阶使用Hexo博客:Next高级配置
前端编程3
前端基础知识16
UniApp15
Vue框架19
Java编程7
Java基础知识14
SpringBoot31
SpringMVC14
MyBatis8
SpringCloud15
RocketMQ1
MyCat1
数据库4
MySQL6
Redis7
MongoDB10
H21
Java技术栈4
知识整理分布式锁的实现方案MySQL事务MySQL的锁
软件工具箱14
IDEAGitMavenGradleNginx安装Nginx配置JMeter压测OllamaPicGoRustFSVSCodeDockerObsidianObs录制
Linux知识11
树莓派安装及使用ArchLinux:常用软件ArchLinux:基础系统安装ArchLinux:深度优化ArchLInux:图形化界面安装ArchLinux:Nirifrp内网穿透Jar启动脚本Linux常用命令VirtualBox安装CentOSVirtualBox安装Ubuntu
Python编程6
Python基础知识Python语法yolo目标检测OpenCV的使用及树莓派平台condauv
创意设计2
Blender:入门知识UI设计基础知识
AI相关9
Claude CodeHermes AgentOpenAI基本使用OpenAI工具调用OpenAI记忆管理OpenAI推理执行OpenAI开发框架Langchainllama.cpp

网格辅助

GridHelper:用于显示网格辅助

const gridHelper = new THREE.GridHelper(30, 30, 0xff0000);
scene.add(gridHelper);

坐标辅助

// 坐标辅助,绿色Y轴,红色X轴,蓝色Z轴
const axesHelper = new THREE.AxesHelper(5);
scene.add(axesHelper);

轨道控制器

使用方式:

import { OrbitControls } from 'three/addons/controls/OrbitControls.js'
const controls = new OrbitControls(camera, renderer.domElement)

注意:最好配合动画函数,不然需要手动渲染

惯性

// 是否开启惯性
controls.enableDamping = true;
// 阻尼惯性有多大
controls.dampingFactor = 0.05;
// 是否自动旋转
controls.autoRotate = true
// 围绕目标旋转的速度
controls.autoRotateSpeed = 0.05
// 禁用缩放
controls.enableZoom = false
// 禁止拖动
controls.enablePan = false
// 禁止移动
controls.enableRotate = false

// 必须在动画循环里调用.update()
controls.update()

相机位置和视角切换

// 更新相机位置
new TWEEN.Tween(camera.position)
  .to(
    {
      x: cameraPosition[item * 6],
      y: cameraPosition[item * 6 + 1],
      z: cameraPosition[item * 6 + 2],
    },
    4000
  )
  .easing(TWEEN.Easing.Exponential.InOut)
  .start();
new TWEEN.Tween(controls.target)
  .to(
    {
      x: cameraPosition[current * 6 + 3],
      y: cameraPosition[current * 6 + 4],
      z: cameraPosition[current * 6 + 5],
    },
    4000
  )
  .easing(TWEEN.Easing.Exponential.InOut)
  .start();
网格辅助
坐标辅助
轨道控制器
惯性
相机位置和视角切换