第三章:多坐标系

第一节:为什么要有多坐标系

  当我们使用一个坐标系来描绘整个场景的时候,场景中的任意点都可以用该坐标系描述,此时如果有一只羊一遍摇动着耳朵,一边走,这个时候如果进行坐标的转换会发现异常的麻烦,此时如果我们把羊看做整体,羊的移动问题就可以用这个坐标系解决,但是这只该死的羊还摇动耳朵,这时候我们应该以羊为坐标系,羊的耳朵移动是在羊这个坐标系的基础上就简单了。

第二节:世界坐标系

1.世界坐标系的概念

  世界坐标系是一个特殊的坐标系,它建立了描述其他坐标系所需要的参考框架。世界坐标系就是最大的坐标系,世界坐标系也被称为全局坐标系或者宇宙坐标系。

2.关于世界坐标系的常见问题

  • 世界坐标系的典型问题都是关于初始位置和环境的。如下
  • 每个物体的位置和方向
  • 摄像机的位置和方向
  • 世界中每一点的地形是什么(如山丘,建筑,湖泊等)
  • 各物体从哪里来到哪里去(NPC的运动策略)

第三节:物体坐标系

1.物体坐标系的概念

  物体坐标系是和特定物体相关联的坐标系,每个物体都有他们独立的坐标系,当物体移动或者改变方向的时候,和该物体相关联的坐标系将随之移动或改变方向。例如,我们每个人都带着自己的坐标系,如果我告诉你“向前一步走”是指在物体坐标系中向前走,当我告诉你“向北一步走”,此时的向北是在世界坐标系的基础上,因为前后左右是物体坐标系自己知道的,但是东西南北是在世界坐标系下衍生出来的概念。

  还有一个简单的例子,例如我询问你车里的音响是在哪,即使你在潍坊,你也不能告诉我在潍坊,而是告诉我在车的哪里,应该说在车门上。这个时候就是以物体坐标系为基础,而不是世界坐标系。

2.物体坐标系常见问题

  •  周围有互相作用的物体吗?(我需要攻击他吗)
  • 哪个方向?在我前面吗?我左边一点?(我应该是射击它还是逃跑)

第四节:摄像机坐标系

1.摄像机坐标系的概念

  摄像机坐标系是和观察者密切相关的坐标系。摄像机坐标系和屏幕坐标系相似,差别在于摄像机坐标系处于3D空间中,而屏幕坐标系是在2D平面里,可以理解摄像机坐标的获取视景展示在屏幕上。摄像机坐标系可以理解为特殊的“物体坐标系”,摄像机坐标系中,摄像机在原点,x轴向右,z轴向前(摄像机的拍摄方向),y轴向上(不是世界的上方,而是摄像机本身的上方,如果放反了,拍出来的就是反的效果)

  

2.摄像机坐标系常见的问题

  • 3D空间中的给定点在摄像机前方吗?
  • 3D空间中给定点是在屏幕上,还是超出了摄像机平截锥体的左右上下边界?(平截锥体就是摄像机能观察到的金字塔区域)
  • 某个物体是否在屏幕上?它的部分在,或全部不在?
  • 两个物体,谁在前面?(该问题称作可见性检测)

第五节:惯性坐标系

1.惯性坐标系的概念

  有时候,好的术语是引领人们正确理解主题的关键。为了简化世界坐标系到物体坐标系的转换,人们引入了一种新的坐标系,称作惯性坐标系,意思是在世界坐标系到物体坐标系的“半途”。惯性坐标系的原点与物体坐标系的原点相重合,并且惯性坐标系的轴平行于世界坐标系的轴。

  

  上图中,物体坐标系(Object Space)的坐标点要转换到世界坐标系(World Space)中,就需要实用惯性坐标系(Inertial Space)作为过渡。 

 

转载于:https://www.cnblogs.com/metalsteel/p/6387628.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/402206.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 设备驱动开发 —— 设备树在platform设备驱动中的使用

关与设备树的概念,我们在Exynos4412 内核移植(六)—— 设备树解析 里面已经学习过,下面看一下设备树在设备驱动开发中起到的作用 Device Tree是一种描述硬件的数据结构,设备树源(Device Tree Source)文件(以…

Python爬虫入门三urllib库基本使用

urllib是一个收集了多个涉及了URL的模块的包: URL获取网页 urllibtest.pyimport urllib2 response urllib2.urlopen(http://www.baidu.com) print(response.read())运行结果: C:\Python27\python.exe H:/spiderexercise/spidertest/urllibtest.py &l…

使用老毛桃U盘重装Windows10系统

使用老毛桃U盘启动盘重装Windows10系统,这个方法很常用,相比较一些别的方法去重装系统,这个方法更方便更简单,容易入手和掌握。 在重装系统前,先去微软的官网把Windows10的ISO镜像文件下载下来,去别的网站下…

Android 网络通信框架Volley简介(Google IO 2013)

1. 什么是Volley 在这之前,我们在程序中需要和网络通信的时候,大体使用的东西莫过于AsyncTaskLoader,HttpURLConnection,AsyncTask,HTTPClient(Apache)等,今年的Google I/O 2013上&…

Linux 设备驱动开发 —— platform设备驱动应用实例解析

前面我们已经学习了platform设备的理论知识Linux 设备驱动开发 —— platform 设备驱动 ,下面将通过一个实例来深入我们的学习。 一、platform 驱动的工作过程 platform模型驱动编程,需要实现platform_device(设备)与platform_driver(驱动&am…

python使用proxy

使用urllib proxies {http: http://host:port} resp urllib.urlopen(url, proxiesproxies) content resp.read()使用urllib2 import urllib2enable_proxy True proxy_handler urllib2.ProxyHandler({"http" : your_proxy}) null_proxy_handler urllib2.Proxy…

There is no public key available for the following key IDs:3B4FE6ACC0B21F32

ubuntu 运行完sudo apt-get update之后,提示 W: There is no public key available for the following key IDs: 3B4FE6ACC0B21F32 解决方法是执行: sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 3B4FE6ACC0B21F32 参考 linux下apt-get出现“no …

Unichar, char, wchar_t

之前总结了一些关于字符表示,以及字符串的知识。 现在在看看一些关于编译器支持的知识。 L"" Prefix 几乎所有的编译器都支持L“” prefix,一个字符串如果带有L“”prefix,意味着这个字符串中的字符都被作为wide char存储&#xf…

Python爬虫入门四urllib库的高级用法

1.设置headers 有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作,我们需要设置一些 Headers 的属性。 首先,打开我们的浏览器,调试浏览器…

进程上下文、中断上下文及原子上下文

谈论进程上下文 、中断上下文 、 原子上下文之前,有必要讨论下两个概念: a -- 上下文 上下文是从英文context翻译过来,指的是一种环境。相对于进程而言,就是进程执行时的环境; 具体来说就是各个变量和数据,…

HandlerThread用法

区分Handler和HandlerThreadHandler实例可以在主线程创建,也可以在子线程创建。在子线程中创建时通过Looper,以下示例: public class MainActivity extends AppCompatActivity { HandlerThread handlerThread; Override protected v…

PHP快速排序及其时间复杂度

<?phpfunction quickSort(&$arr, $l, $r) {if (count($arr)<2 || $l>$r) return;$tmp_l $l;$tmp_r $r;$privot $arr[$r];while($tmp_l<$tmp_r) {while($arr[$tmp_l] < $privot && $tmp_l<$tmp_r) $tmp_l; //内部没有$tmp_l <$tmp_r的判断…

Python爬虫入门五URLError异常处理

本节在这里主要说的是 URLError 还有 HTTPError&#xff0c;以及对它们的一些处理 1.URLError 首先解释下 URLError 可能产生的原因&#xff1a; 网络无连接&#xff0c;即本机无法上网连接不到特定的服务器服务器不存在 在代码中&#xff0c;我们需要用 try-except 语句来…

Linux 文件系统与设备文件系统 (二)—— sysfs 文件系统与Linux设备模型

提到 sysfs 文件系统 &#xff0c;必须先需要了解的是Linux设备模型&#xff0c;什么是Linux设备模型呢&#xff1f; 一、Linux 设备模型 1、设备模型概述 从2.6版本开始&#xff0c;Linux开发团队便为内核建立起一个统一的设备模型。在以前的内核中没有独立的数据结构用来让内…

Python爬虫入门六Cookie的使用

为什么要使用 Cookie 呢&#xff1f; Cookie&#xff0c;指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据&#xff08;通常经过加密&#xff09; 比如说有些网站需要登录后才能访问某个页面&#xff0c;在登录之前&#xff0c;你想抓取某个页面内容…

有得必有失

上次也说道Ruby on Rails 是一个很不错的框架。本人也想去研究一翻&#xff0c;我已经不再替别人写程序了。 当编程变成一门兴趣的时候&#xff0c;而不是吃饭的依据。我觉得我需要跟着我的心走。 1&#xff1a;我现在的工作环境是在LINUX下&#xff0c;我一次次的折腾mono好吧…

mybatis下log4j使用

1. log4j jar包&#xff08;mvnrepository&#xff09; 2. log4j.properties文件 log4j.properties内容&#xff1a; log4j.rootLoggerDEBUG, stdout, logfile    log4j.appender.stdoutorg.apache.log4j.ConsoleAppender    log4j.appender.stdout.layoutorg.apache…

Python爬虫入门七正则表达式

已经搞定了怎样获取页面的内容&#xff0c;不过还差一步&#xff0c;这么多杂乱的代码夹杂文字我们怎样把它提取出来整理呢&#xff1f;下面就开始介绍一个十分强大的工具&#xff0c;正则表达式 1.了解正则表达式 正则表达式是用来匹配字符串非常强大的工具&#xff0c;在其…

Linux 文件系统与设备文件系统 (一)—— udev 设备文件系统

一、什么是Linux设备文件系统 首先我们不看定义&#xff0c;定义总是太抽象很难理解&#xff0c;我们先看现象。当我们往开发板上移植了一个新的文件系统之后&#xff08;假如各种设备驱动也移植好了&#xff09;&#xff0c;启动开发板&#xff0c;我们用串口工具进入开发板&a…

CSS 如何让Table的里面TD全有边框 而Table的右左边框没有

比如这样一个CSS.td3{font-size: 14px;color: #FFFFFF;background-color: #000000;BORDER-RIGHT: #f6f6f6 1px solid; //显示右边框为1px&#xff0c;如果不想显示就为0pxBORDER-TOP: #f9f9f9 0px solid; //显示上边框为1px&#xff0c;如果不想显示就为0pxBORDER-LEFT: #f9f9f…