ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Unity 之坐标系

2021-06-14 17:30:00  阅读:254  来源: 互联网

标签:指向 Vector3 unity 右手 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” 等都是同一个道理。

标签:指向,Vector3,unity,右手,Unity,左手,坐标系
来源: https://blog.csdn.net/angry_youth/article/details/117882543

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有