Unity3d数学基础之坐标系

笛卡尔坐标系的定义 :
1、每个2D笛卡尔坐标系都有一个特殊的点,称为原点(0,0)它是坐标系的中心。
2、每个2D笛卡尔坐标系都有两条过原点的直线向两边无限延伸,称为,两个轴互相垂直。
笛卡尔坐标系定位
坐标系是一个精确定位点的框架。为了在笛卡尔坐标系中定位点,引入了笛卡尔坐标的概念。在2D平面中,两个数(x,y)就可以定义一个点。坐标的每个分量都表明了该点与原点之间的距离和方位,每个分量都是到相应轴的有符号距离。如下图所示,x分量表示该点到y轴的有符号距离,同样y分量表示该点到x轴的有符号距离。“有符号距离”指在某个方向上距离为正,而在相反方向为负。

26102602-9b618c876e1944ecb5236d5a906c8b0b

3D坐标系:
3D坐标系表示三维空间系,3D坐标系存在三个轴,比2D坐标系多了一个Z轴,3个轴相互垂直,也就是没个轴都有垂直于其他两个轴。在3D坐标系中点位需要3个数:x、y、z.

左手坐标系、右手坐标系:
3d坐标系存在两种完全不同的坐标系,左手坐标系和右手坐标系。如果属于相同的坐标系,可以通过旋转来重合,否则是不可以重合的。两个坐标系之间没有好坏,之是应用与不懂的场景。 计算机中使用左手坐标系,线性代数中使用右手坐标系。
多坐标系:
为什么使用多坐标系?因为在不同的情况下使用不同的坐标系更加的方便。某些信息只有在特定的上下文环境中获得。
一些有用的坐标系:
1、世界坐标系:是一个特殊的坐标系,它建立了描述其他坐标系所需要的参考框架,另一方面说,能用时间坐标系描述其他坐标系的位置,而不能用更大的坐标系来描述世界坐标系。
2、物体坐标系:特定物体相关联的坐标系。当物体位移或改变方向时,和该物体相关的坐标系也随之移动和改变方向。比如告诉你“向前走一步”,则是向你的物体坐标系发指令。“前”、“后”、“左”、“右”这样的概念只有物体坐标系才有意义。“向左转”是物体坐标系,“向东”则是世界坐标系。有时物体坐标系也称作模型坐标系,模型顶点的坐标都是在模型坐标系中描述的。
3、摄像机坐标系:观察者密切相关的坐标系。摄像机坐标系被看作是一种特殊的物体坐标系,该物体坐标系定义摄像机的屏幕可视区域。在摄像机坐标系中,摄像机在原点,x轴向右,z轴向前,y轴向上。一个摄像机坐标系如下图所示。关于摄像机坐标系的轴向约定可能不同。许多图形学书中习惯用右手坐标系,z轴向外,即从屏幕指向读者。2D屏幕上显示的内容就是3D摄像机坐标系通过投影转换呈现的。

4、惯性坐标系:为了简化世界坐标系到物体坐标系之间的转换,才有了惯性坐标系。惯性坐标系的原点和物体坐标系的原点重合,但惯性坐标系的轴平行于世界坐标系轴。所以从物体坐标系转换为惯性坐标系只需要旋转,从惯性坐标系到世界坐标系只需要平移。

5、嵌套坐标系:3D虚拟世界中每个物体都有自己的坐标系———-自己的原点和坐标轴。每个模型都有自己的原点和坐标轴,模型的子物体就是在这个嵌套坐标系中。

物体坐标系到世界坐标系的转换:


1、旋转物体坐标系到惯性坐标系。将物体坐标轴旋转到与惯性坐标系重合。

2、将惯性坐标系原点平移至世界坐标系。

关于Unity的一些坐标系的知识:
Unity是左手坐标系
世界坐标系:我们在场景中添加物体(如:Cube),他们都是以世界坐标显示在场景中的。transform.position可以获得该位置坐标。
屏幕坐标系:以像素来定义的,以屏幕的左下角为(0,0)点,右上角为(Screen.width,Screen.height),Z的位置是以相机的世界单位来衡量的。注:鼠标位置坐标属于屏幕坐标,Input.mousePosition可以获得该位置坐标,手指触摸屏幕也为屏幕坐标,Input.GetTouch(0).position可以获得单个手指触摸屏幕坐标。
绘制GUI界面的坐标系:这个坐标系与屏幕坐标系相似,不同的是该坐标系以屏幕的左上角为(0,0)点,右下角为(Screen.width,Screen.height)。
视口坐标系:视口坐标是标准的 相对于相机的。相机的左下角为(0,0)点,右上角为(1,1)点,Z的位置是以相机的世界单位来衡量的。
世界坐标→屏幕坐标:camera.WorldToScreenPoint(transform.position);这样可以将世界坐标转换为屏幕坐标。其中camera为场景中的camera对象。
屏幕坐标→视口坐标:camera.ScreenToViewportPoint(Input.GetTouch(0).position);这样可以将屏幕坐标转换为视口坐标。其中camera为场景中的camera对象。
视口坐标→屏幕坐标:camera.ViewportToScreenPoint();
视口坐标→世界坐标:camera.ViewportToWorldPoint();

using UnityEngine; 
using System.Collections; 
public class Position : MonoBehaviour
{ 
    //场景的相机,拖放进来         
    public Camera camera;

    //场景的物体        
    private GameObject obj;

    void Start()
    {
         //初始化         
        obj = GameObject.Find("Plane");
    } 
    void Update()
    { 
        if (Input.GetMouseButtonDown(0))
        {
            print("世界坐标" + obj.transform.position);
 
            print("屏幕坐标" + Input.mousePosition);
 
            print("Plane 世界坐标→屏幕坐标" + camera.WorldToScreenPoint(obj.transform.position));
 
            print("鼠标屏幕坐标→视口坐标" + camera.ScreenToViewportPoint(Input.mousePosition));
 
            print("Plane 世界坐标→视口坐标" + camera.WorldToViewportPoint(obj.transform.position));
        } 
    } 
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容