为什么要使用多坐标系
为什么要使用多坐标系呢?毕竟,任何一个3D坐标系都是可以无限延伸的,可以包含空间中所有的点。因此只需要选定一个坐标系,然后宣传它为“世界”坐标系,用这个坐标系就能描述所有的点了。这样不是更简单吗?实际上,对此的回答是“NO”。人们发现,不同情况下使用不同的坐标系更方便。
使用多种坐标系的原因是因为某些信息只能在特定的上下文环境中获得。理论上,确实所有点都能只用一个“世界”坐标系描述。但是,对于一个特殊点a,也许不知道他在世界坐标系中的坐标,但可能知道它在其他坐标系中的坐标。
一些有用的坐标系
世界坐标系
世界坐标系是一个特殊的坐标系,它建立了描述其他坐标系所需要的参考框架。从另一方面说,能够用坐标系描述其他坐标系的位置,而不能用更大的、外部的坐标系来描述世界坐标系。
关于世界坐标系的典型问题都是关于初始位置和环境的,如:
- 每个物体的位置和方向
- 摄像机的位置和方向
- 世界中每一点的地形是什么
各物体冲哪里来、到哪里去
物体坐标系
物体坐标系是和特定物体相关联的坐标系。每个物体都有它们独立的坐标系。当物体移动或改变方向时,和该物体相关联的坐标系随之移动或改变方向。
摄像机坐标系
摄像机坐标系是和观察者密切相关的坐标系。摄像机坐标系和屏幕坐标系相似,差别在于摄像机坐标系处于3D空间中而屏幕坐标系在2D平面里。摄像机坐标系能被看作一种特殊的“物体”坐标系,该“物体”坐标系就定义在摄像机的屏幕可视区域。摄像机坐标系中,摄像机在原点,x轴向右,z轴向前,y轴向上。
关于屏幕坐标系的典型问题是哪些问题应该在屏幕上绘制出来。如:
- 3D空间中的给定点在摄像机前方吗?
- 3D空间中的给定点是在屏幕上,还是超出了摄像机平截椎体的左、右、上、下边界?
- 某个物体是否在屏幕上? 它的部分在, 或全部不在?
- 两个物体, 谁在前面?(该问题称作可见性检测)
惯性坐标系(Inertial Space)
为了简化世界坐标系到物体坐标系的转换,人们引入了一种新的坐标系,称为惯性坐标系,意思实在世界坐标系到物体坐标系的“半途”。惯性坐标系的原点和物体坐标系的原点重合,但惯性坐标系的轴平行与世界坐标系的轴。
为什么要引入惯性坐标系呢?因为从物体坐标系转换到惯性坐标系只需要旋转,从惯性坐标系转换到世界坐标系只需要平移。分开考虑两件事比把它们糅合在一起容易得多。
嵌套式坐标系
。。。。。。。
描述坐标系
怎样在一个坐标系中描述另一个坐标系?
原点定义了坐标系的位置,轴定义了坐标系的方向(轴还描述了其他信息,如刻度等。再次假设坐标轴是互相垂直的,并且子坐标系和父坐标系的单位相同)。如果能找到一种方法描述原点和轴,就能定位坐标系了。
坐标系位置描述是很直接的,所要做得一切就是描述原点的位置。当然,采用的使其在父坐标系中的位置,而不是在其本身的子坐标系中的位置。
坐标系的转换
。。。。。。