ThreeJS 坐标系(旋转跳跃,永不停歇)

本文深入探讨ThreeJS中的3D坐标系,包括世界坐标系和局部坐标系的区别,以及3D对象的平移、旋转、缩放。通过示例解释了如何在父子关系中进行坐标变换,强调每个对象的变换都是相对于其父坐标系进行的。
摘要由CSDN通过智能技术生成

ThreeJS 坐标系(旋转跳跃,永不停歇)

本文主要介绍 threejs 中3D坐标系的内容,内容包含世界坐标系(world coordinate system)局部坐标系(local coordinate system)之间的区别与关系;3D 对象之间建立父子关系时平移、旋转、缩放转换;简单介绍底层数学层面如何支持 3D 对象进行平移、旋转、缩放。

3D 坐标系

3D 空间通常采用3个坐标轴来进行表示分别是x、y、z。 这三个坐标轴有两种布置方式分别是左手坐标系和右手坐标系(它们是以坐标轴的朝向来命名的)。

alt

openGL 采用的是右手坐标系,WebGL 是openGL的JS版本也是右手坐标系。ThreeJS 依然采用的右手坐标系。而 Direct3D 使用的坐标系则是左手坐标系。右手坐标系和 3D 笛卡尔坐标系是一样的。

alt   3D笛卡尔坐标系

ThreeJS 中有几个 2D、3D 坐标系,本文主要介绍最重要的世界坐标系(world coordinate system)、局部坐标系(local coordinate system)两个。剩余的会在该系列的其他文章中进行介绍(屏幕坐标系、相机坐标系等)。

世界坐标系&局部坐标系

上一篇文章【加个传送门: ThreeJS 入门创建第一个3D对象】中有介绍 THREE.Scene 创建 scene 场景,创建后的 scene 就是个小宇宙,这个小宇宙就是世界空间,世界空间中的坐标系称为世界坐标系。

alt         scene 定义世界坐标系

当我们往 scene 中添加 3D 对象并进行平移、旋转、缩放等操作时,该对象就是相对于 scene的世界坐标系进行移动。

alt scene 中的 Mesh

通常使用修改 position 值来实现平移;通过修改 rotation 值来实现旋转;使用设置 scale 来实现缩放。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值