世界坐标系和本地坐标系以及左右坐标系和右手坐标系

918 阅读2分钟

在AR开发中,理解坐标系的概念是非常重要的,特别是世界坐标系、本地坐标系、左手坐标系和右手坐标系。这些概念直接影响到物体的位置、旋转和运动的计算。


1. 世界坐标系(World Coordinate System)

  • 定义
    世界坐标系是一个全局的参考坐标系,用于定义整个虚拟或物理世界中物体的位置。它是所有物体运动和位置的基准。
  • 特点
    • 世界坐标系的原点通常固定在一个全局位置,比如虚拟场景的中心或物理空间中初始设备位置。
    • 所有的物体都以世界坐标系为参考描述其位置和旋转。

2. 本地坐标系(Local Coordinate System)

  • 定义
    本地坐标系是相对于某个具体物体或节点的坐标系,用于描述该物体的局部位置和方向。
  • 特点
    • 每个物体都有自己的本地坐标系。
    • 在本地坐标系中,物体的原点通常位于物体的中心,轴的方向与物体的自身方向对齐。
    • 物体的本地坐标可以通过与父节点的关系转换为世界坐标。

3. 左手坐标系和右手坐标系

  • 定义
    左手坐标系和右手坐标系是两种不同的三维空间坐标系的定义方式,分别依据左手和右手的手势规则来定义轴的方向。

右手坐标系(Right-Handed Coordinate System)

  • 规则
    <ul>
    	<li>大拇指指向X轴正方向。</li>
    	<li>食指指向Y轴正方向。</li>
    	<li>中指指向Z轴正方向(垂直于X和Y轴,根据右手法则向外)。</li>
    </ul>
    </li>
    <li><strong>应用场景</strong>:
    <ul>
    	<li>常用于计算机图形学和许多3D引擎,如OpenGL。</li>
    	<li>在右手坐标系中,逆时针方向通常为正旋转。</li>
    </ul>
    </li>
    

左手坐标系(Left-Handed Coordinate System)

  • 规则
    <ul>
    	<li>大拇指指向X轴正方向。</li>
    	<li>食指指向Y轴正方向。</li>
    	<li>中指指向Z轴正方向(垂直于X和Y轴,根据左手法则向内)。</li>
    </ul>
    </li>
    <li><strong>应用场景</strong>:
    <ul>
    	<li>常用于一些游戏引擎,如DirectX。</li>
    	<li>在左手坐标系中,顺时针方向通常为正旋转。</li>
    </ul>
    </li>
    

4. 主要区别

属性 右手坐标系 左手坐标系
定义方式 Z轴方向由右手法则决定,向外。 Z轴方向由左手法则决定,向内。
正旋转方向 逆时针为正。 顺时针为正。
常见使用场景 OpenGL, Blender等。 DirectX, Unity等(可配置)。

总结

  • 世界坐标系本地坐标系是两种参考点的选择,决定了你描述位置和方向时的基准。
  • 左手坐标系右手坐标系是描述三维空间的两种不同约定。
  • 在AR开发中,明确所使用的坐标系规则(如ARKit使用右手坐标系,ARCore使用左手坐标系)可以避免混淆,并确保对象正确显示和操作。