Unity 之坐标系

备注:希望和大家一起交流学习,如果有不同的观点欢迎一起讨论学习,不喜勿喷,谢谢。

坐标系

2D 笛卡尔坐标系

这个没什么好说的,非常简单,就是简单的 X - Y 坐标,我们的屏幕坐标就是标准的 2D 坐标系,只是采用的不是 x-y 表示,而是使用 width - height 表示。
在这里插入图片描述
但是屏幕坐标系的方向不是一定的,比如 unity 屏幕坐标如下,使用左下角作为原点,有些地方会使用左上角作为原点。
在这里插入图片描述

3D坐标系

3D 坐标系根据 z 轴的方向不同,主要分为 “左手坐标系” 和 “右手坐标系”。

左手坐标系

伸出左手,大拇指指向右边(x轴正向),食指指向上边(y轴正向),中指指向你朝向的方向(z轴正向)。(手背朝自己)

在这里插入图片描述

比如,DirectX 采用左手坐标系,unity 采用左手坐标系传统的计算机图形学也采用左手坐标系 等,unity 如下:

在这里插入图片描述

右手坐标系

伸出右手,大拇指指向右边(x轴正向),食指指向上边(y轴正向),中指指向自己(z轴正向)。(手心朝自己)

在这里插入图片描述
比如:openGL 采用右手坐标系线性代数采用右手坐标系 等。

总结:

  • “左手坐标系” 和 “右手坐标系 ” 没有什么好坏之分,他们都是一样的,只是因为研究领域和不同背景下,会采用不同的坐标系。
  • **2D 坐标系是“等价”的**,这里的“等价”的意思是,如果存在两个 2D 坐标系A 和 B,无论A坐标系如何旋转,最终总是可以和坐标系B重合,x,y指向相同的方向。
  • **3D 坐标系是“不一定等价”的**,比如 左手坐标系 和 右手坐标系,无论 左手坐标系 如何旋转,最终也不可能和 右手坐标系 每个坐标指向相同的方向。

unity Vector

通过上面我们已经了解到 unity 是采用左手坐标系的,那么,代码中经常出现的 “Vector3.forward”,“Vector3.back”,“Vector3.down” 表示什么含义呢?
以下是unity Vector3 的部分源码,我们已经看到了,
Vector3.forward = (0,0,1)
Vector3.back =(0,0,-1)
Vector3.down = (0,-1,0)
在这里插入图片描述
“forward” 言外之意就是相对原点向前,因为 unity 采用 左手坐标系,所以向前就是Z轴正向所指方向,站在原点看,Vector3.forward 就是(0,0,1),相对于 “back” ,“down”, “left”, “right” 等都是同一个道理。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值