为什么我们需要多个坐标系统呢?任何一个坐标系统都是无限的,包括了空间中的所有点。所以,我们用任意一个坐标系统,然后规定它是“世界空间”,然后所有的点位置都可以用这个坐标系统来描述了。难道就不能更简单点了么?实践证明的答案是不能。很多人发现在不同的场景下使用不同的坐标系统更方便。

使用多个坐标系统的原因是,在一个特定的场景上下文中,可以拥有一份确定的信息。也许整个世界上的所有点都可以在一个坐标系里表示,然而,对于一个确定的顶点a,我们可能不知道它在世界坐标中的位置,但是我们可能可以明确它在相对于某些坐标系统中的位置。

比如,有两个相邻的城市A,B。A城市聪明的居民们在代价公认的一个城市的中心建立了坐标原点,然后用罗盘所指的方向来作为坐标轴,而B城市的居民可能在他们的城市中一个任意的位置建立了坐标原点,然后然坐标轴的方向在一个任意的方向,两座城市的居民都觉得他们各自的坐标系统十分便利。然而,这时候有一名工程师被分配了一个任务,要求他在两个城市之间建立第一条公路,而且需要一个地图来清楚地看两个城市以及城市间的所有细节。因此引入了更为便利的第三坐标系,这个坐标系对于两座城市的居民没有任何影响。两座城市中各自的坐标点都需要从本地坐标转换成新的坐标系的坐标来绘制新地图。

在今天开明的时代,我们习惯于在媒体上听到文化相对主义,这促使人们认为,认为一个文化或信仰系统或国家议程优于另一个文化或信仰系统是不正确的。 将想象力扩展到我们所谓的“转换相对主义”并不是太大的飞跃,即没有地方或方向或坐标系统被认为优于其他方面的论点。 在某种意义上,这是真的,乔治·奥威尔解释:“所有的坐标系统被认为是平等的,但有些是比别人更平等”。现在让我们看看一些在3D图形中常见的坐标系统。

     不同的坐标系统都是有必要的,因为只有在一些特殊的场景下这些信息才是有意义和可以使用的。在这一节,将会有一些公共坐标系的例子。

世界坐标系(World space)

作者写这本书的时候在芝加哥。有一个确定的经纬度,这个经纬度是绝对的,所以,你并不需要知道芝加哥在哪里,不需要芝加哥在美国,因为这个经纬度是绝对的。在这个世界上,人们规定经度是0的地方在格林尼治天文台,纬度为0的地方在赤道。

(有一些好奇的读者可能意识到这个经纬度的坐标系并不是笛卡尔坐标系了,这是一种其他的坐标系,但是对于这次我们讨论的话题没有什么影响,我们生活在一个二维的平面上,就是地球的表面,只不过这个平面是包裹在一个球的外层的。)

世界坐标系是一个特殊的坐标系,它建立了一个全局的场景,有了这个全局的坐标系,其他的坐标系统就可以被确立了。换句话说,我们可以把在其他坐标系中的点转成世界坐标系来表示。但是我们不能用更大的坐标系来表示和包括世界坐标系了。

在非技术的角度来看,世界坐标系是建立一个我们关心的最大的坐标系统,但很多情况下这并不是整个世界,举个例子,如果我们希望渲染一个笛卡尔坐标系中的一个画面,我们会真实用到的笛卡尔坐标系就是“世界”,我们没必要关心这个世界坐标系被定位在哪里,甚至它是否存在于真实的世界中。

我们之前说了世界坐标系是用来描述点的绝对坐标的。希望你听到这样的说法的时候耳朵有些刺痛,因为你知道这不完全是真理。我们这里说的绝对坐标是指的在这个我们刚定义的最大的坐标系统中的坐标,而不是在真实的世界中的坐标。就比如之前所说的,你可能知道你现在的位置的经纬度,但是放眼整个宇宙,假设把世界坐标系的原点放在整个银河系的中心的时候,怕是没有人能说出来自己的确切位置了。

世界坐标系在很多时候也被叫作全局坐标系和宇宙坐标系。

物体坐标系(Object spce)

物体坐标系是关联了一个指定的物体,每一个物体都有一个独立的物体坐标系。当一个物体移动旋转改变了它的朝向,那么与这个物体关联的物体坐标系也随之改变了,也一起改变了朝向。比如,我们都带着自己的坐标系统,如果我们对你说“向前走一步”,我们给了你一个相对于你自己的物体坐标系的指令(请原谅我们把你说成是一个物体,其实你知道我们想表述的意思的)。我们没办法描述你要移动的绝对方向,你可能会向北移动,也可能向南移动,这些“向前”,“向后”,“向左”,“向右”对于一个物体坐标系是有意义的。当你驾车的时候,有的人给你一些指示,有时候告诉你“向左转”,还有的时候告诉你“向东走”。“向左走”是对于一个物体坐标系的,而“向东走”呢,是对于世界坐标系来说的。

位置和方向在物体坐标系也是可以被明确的。比如,当我问你你车上的杯子在哪里,你不会说在芝加哥,甚至不会说在哪条街道,在这种情况下,如果回答是一个相对于全局的位置是没有意义的,我当然希望的是你能说清楚你的杯子位于你的车的物体坐标系的哪里。

在图形学中,物体坐标系又被称作模型坐标系(model space),因为模型的顶点都是在这个模型坐标系中表示的。物体坐标系也被广泛用于物理中,比如,用身体的中轴线来当坐标轴。

相机坐标系(Camera Space)

有一个比较特殊的物体坐标系就是相机坐标系,这个坐标系是我们的视点用来渲染看到的场景所用的坐标系。在相机坐标系中,相机一直处于相机坐标系的原点,+x的方向是向右的,+z的方向是向前的(向屏幕里的方向,因为使用的是左手坐标系),+y的方向是向上。这里的像上不是世界坐标的正上,而是一个相机的上方向。可以来看一下这个相机坐标系的图片。

    

这里要注意一些细节,相机的坐标是三维空间,而我们在屏幕上看到的是二维的。因为我们是做了一个映射,把三维空间的东西映射到了一个二维的平面上,这个映射就是大家知道的“投影”了。

(译)三维空间中的几种坐标系相关推荐

  1. workbench设置单元坐标系_浅谈Ansys中的几种坐标系

    这篇简短的文章是我多年前在仿真论坛任ansys版主时发表的,时隔多年,同事正好咨询关于ansys坐标系的知识,就将此贴翻出来解他困惑,自己也重温下当年的技术贴,发给大家,希望对学习ansys的初学者有 ...

  2. 理解Unity3D中的四种坐标体系

    coffeecato写在前面:本文比较了unity3d中的四种坐标系,在使用unity3d开发的过程中,已经多次被坐标转换之类的问题卡住,这篇文章可以说是系统的对四种坐标系进行了总结,结合实际的使用经 ...

  3. 【自动驾驶】20.自动驾驶中的各种时空坐标系

    简介 介绍自动驾驶技术中几种常用的坐标系统,以及他们之间如何完成关联和转换,最终构建出统一的环境模型. 所谓时空坐标系,包括三维空间坐标系和一维时间坐标系.在此基础上,用解析的形式(坐标)把物体在空间 ...

  4. [足式机器人]Part1 三维空间中的跳行Ch03——【Legged Robots that Balance 读书笔记】

    本文仅供学习使用 本文结合个人理解体会作者的思路,也从个人科研角度出发,部分翻译参考由:QQ群(2群legged robot that balance)提供,感谢他们为本文英文版翻译所做的贡献(但有些 ...

  5. 使用Matlab绘制三维空间中的任意圆(参数方程/坐标转换)

    要实现的绘图效果: 问题分析: 首先,要明确定义三维空间中的圆需要哪些参数: 给定圆所在平面(空间中的平面可以用点法式给定,即给定平面上一点和平面在该点处的法向量) 给定圆心位置(三维空间中的点的坐标 ...

  6. 如何使用matlab进行二维和三维空间的位姿描述及坐标系的变换

      本篇文章主要与大家分享一下如何使用matlab进行二维和三维空间的位姿描述及坐标系的变换,文章内容处于更新和补充中,(我同时安装了机器人工具箱9.10版本和10.4版本,因此文章也介绍了两种版本工 ...

  7. 三维空间中的两直线相交

    很多资料上提供的两直线相交求点问题一般都是基于二维空间的,而且是直接使用坐标系进行求解.实际上知道二维空间中的求法(使用坐标系进行求解的),要想从中推导到三维空间中的求法是不容易的.在进行几何问题求解 ...

  8. 三维空间中视角位置和物体取向的确定

    1.确定位置 我们要在三维空间中确定一个物体,或者定位一个视角:如果物体是一个对称物体,即我们不需要确定他的姿态,我们有两种方式确定它的位置. 1.1世界坐标系 世界坐标系是一个特殊的坐标系,它建立了 ...

  9. 在Unity中制作4种不同的游戏

    流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,48.0 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小解压后:8.6 GB 含课程素材 |时长:15h ...

最新文章

  1. 秒杀(PHP,Redis,Lua)
  2. 牛客练习赛7 E 珂朵莉的数列
  3. 求数组中的最小值以及最小值的序列号
  4. try catch finally 执行顺序问题
  5. MySQL利用存储过程清除所有表中的所有记录
  6. 连续 3 天,企业容器应用实战营上海站来啦!
  7. 使用实时摄像头预览的iOS对象检测(六)
  8. 中国传统颜色html源码,中国传统颜色16进制代码对照表-HTML
  9. linux内核镜像的分层,Docker镜像分层的原理详解
  10. getCurrentSession与openSession的区别
  11. Rust: flat_map、filter_map、for_each
  12. python飞机大战源码素材包_python实现飞机大战微信小游戏
  13. 解决:IDEA打开在GitHub上下载的java项目源码没有src目录的问题
  14. Redfish 验证工具: Redfish Service Validator (OData CSDL)
  15. jsp技术被淘汰了?那还要不要学它?
  16. matlab 不见了,matlab命令窗口不见了
  17. 2020 年你读了哪些觉得比较好的计算机书籍?
  18. echarts 生成中国陕西省份(或其他省份)的地图,大屏使用
  19. 什么是堆栈,堆和栈到底是不是一个概念
  20. 利用Python实现人脸识别,制作天网系统

热门文章

  1. 计算机中cpu是不是内存,电脑卡是cpu还是内存
  2. 关于SearchView的一些小细节
  3. python 页眉页脚_python自动化办公:玩转word之页眉页脚秘笈-阿里云开发者社区
  4. Circular-Circular 和 Circular-Linear Regression
  5. 《Oracle内核技术解密》读书笔记(一)
  6. 电子科大2020计算机考研真题,2021电子科技大学考研历年真题复习资料
  7. 泰坦之路手机版怎么登陆服务器未响应,泰坦之旅一直登入不进去怎么办
  8. 苹果手机怎么关机重启
  9. OSS服务和自建服务器存储对比
  10. Google File System中文版