You need to enable JavaScript to run this app. Three.js如何获取Object3D对象的右手系右侧方向向量
优惠活动
大模型
产品
解决方案
定价
更多

Three.js如何获取Object3D对象的右手系右侧方向向量

Three.js 右手系3D对象右侧方向向量获取方法

你提到的获取前方向向量的代码是正确的:

var forward = new THREE.Vector3();
object.getWorldDirection(forward); 

下面是两种常用的正确获取右手系右侧方向向量的方案:

方案1:直接从世界矩阵提取(最高效)

Three.js 中 Object3D 的世界矩阵matrixWorld是列主序存储,第0列对应当前对象局部X轴(默认对应右手系右方向)在世界空间的坐标分量,可以直接提取:

// 可选:如果刚修改过对象的位置、旋转、缩放属性,先更新世界矩阵保证数据最新
object.updateMatrixWorld(true);

const right = new THREE.Vector3();
// 提取世界矩阵的第0列作为右方向向量
right.setFromMatrixColumn(object.matrixWorld, 0);

// 可选:如果对象存在非均匀缩放,调用归一化得到单位向量
right.normalize();

方案2:通过前方向与上方向叉乘计算

如果你已经拿到了前方向向量forward,也可以通过叉乘运算得到右方向:

object.updateMatrixWorld(true);

// 先获取对象的世界空间上方向(矩阵第1列)
const up = new THREE.Vector3();
up.setFromMatrixColumn(object.matrixWorld, 1);

// 右手系叉乘规则:前方向 叉乘 上方向 = 右方向
const right = forward.clone().cross(up);

// 可选:归一化处理
right.normalize();

内容的提问来源于stack exchange,提问作者1owk3y

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 22:15:01