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

从方向向量获取y轴旋转值

常用方案三进行模型控制

方案 1:直接用 lookAt

如果你的方向向量是从 A → B,那么可以用 lookAt

const dir = p2.clone().sub(p1).normalize(); // 世界方向向量
const target = p1.clone().add(dir);         // 方向目标点mesh.lookAt(target); // 让模型的 -Z 轴朝向 target

⚠️ 注意:lookAt 默认让 物体的 -Z 轴 指向目标点(这是 Three.js 的约定)。
如果你希望模型的 +Z 轴 或 +X 轴 对齐,需要额外旋转一个偏移量。

 

方案 2:用四元数 setFromUnitVectors

如果你知道模型当前「前方」是哪个局部轴,可以用四元数来把它旋转到目标方向:

// 目标方向(XZ 平面,单位化)
const dir = p2.clone().sub(p1).setY(0).normalize();// 假设模型的“前方”是 +Z 轴
const forward = new THREE.Vector3(0, 0, 1);// 计算旋转四元数
const quat = new THREE.Quaternion().setFromUnitVectors(forward, dir);// 应用到模型
mesh.quaternion.copy(quat);

这样 mesh 就会旋转到朝向 p1 → p2 的方向。

 

方案 3:限制在 XZ 平面(常见于角色控制器)

如果你只想控制 Y 轴旋转(比如角色在地面上转向),可以这样:

const dir = p2.clone().sub(p1).setY(0).normalize();// 朝向角度(绕 Y 轴旋转)
const angle = Math.atan2(dir.x, dir.z); mesh.rotation.set(0, angle, 0); // 只改 Y

 

http://www.jsqmd.com/news/4340/

相关文章:

  • verilog一些操作符和特殊函数
  • AI工作流详解以及应用场景(AI)
  • 20250820_浙江省职业职工技能竞赛_crypto
  • 非结构网格中计算场梯度的手段比较
  • 第一章pytorch安装
  • 钡铼技术:2025工业智能体元年,盘点已推出的工业AI大模型总有一款适合您
  • 深入解析:i.MX6ULL移植内核6.6(一)修改网络驱动和LCD驱动
  • 微算法科技(NASDAQ MLGO)使用基于深度学习的物理信息神经网络(PINN),增强区块链IoT网络交易中的入侵检测
  • 前端模块化——彻底搞懂AMD、CMD、ESM和CommonJS
  • 【MySQL】XML中基于已有查询代码,进一步做汇总统计
  • 别再一张证件照用到底了,我建了个“个人形象库”
  • Vue3.5 + Node.js + Express 实现完整登录注册鉴权流程
  • 【SPIE出版】第七届地球科学与遥感测绘国际学术会议(GRSM 2025)
  • ARL(灯塔)安装步骤--超简单!!
  • 实用指南:Java基础(十四):枚举类详解
  • 传统开水壶升级智能水壶低成本开发方案WT588F02KD-32N
  • 基于MATLAB的经典车辆路径问题(VRP)求解方法详解
  • kali复现arp欺骗
  • VGGT: Visual Geometry Grounded Transformer
  • 14种纯css3对话气泡样式代码
  • 微信小程序使用地图map 实现定位和实时绘画轨迹
  • 嵌入式入门,基于keil5用stm32寄存器和标准库实现LED流水灯
  • AI agent编程随记
  • 小人鱼的数学题 - Li
  • 再见 Claude Code!玩转 CodeX CLI 的 16 个实用小技巧,效率拉满!!
  • 【IEEE出版】第五届电气工程与机电一体化技术国际学术会议(ICEEMT 2025)
  • [新教程] Linux服务器修改ssh服务端口
  • HT-AD5PS-1+:1–400 MHz“五路小方糖”,一张板子省掉三种料!
  • 《嵌入式驱动(二):驱动编写基本概念》
  • 一站式电竞平台解决方案:数据、直播、源码,助力业务飞速启航 - 数据服务