blu*_*nda 5 transform augmented-reality ios swift arkit
我想更好地理解 ARKit 的 ARCamera 变换所在的相机坐标空间。在文档中,它说
\n\n\n\n\n此变换为相机创建一个相对于设备方向恒定的局部坐标空间。在相机空间中,当设备处于UIDeviceOrientation.landscapeRightorientation \xe2\x80\x94 时, x 轴指向右侧,即 x 轴始终沿着设备的长轴指向,从前置摄像头朝向主页按钮。y 轴指向上方(相对于 UIDeviceOrientation.landscapeRight 方向),z 轴指向远离屏幕一侧的设备。
\n
接下来,UIDeviceOrientation.landscapeRight 文档说:
\n\n\n\n\n设备处于横向模式,设备直立且主页按钮位于左侧。
\n
当我试图理解这一点时,似乎"the x-axis points to the right when the device is in UIDeviceOrientation.landscapeRight orientation"和之间存在冲突"that is, the x-axis always points along the long axis of the device, from the front-facing camera toward the Home button"。前者向右有+x,后者向左有+x。
这是我的想象"the x-axis points to the right when the device is in UIDeviceOrientation.landscapeRight orientation":
这就是我的想象"that is, the x-axis always points along the long axis of the device, from the front-facing camera toward the Home button":
感谢任何帮助,谢谢!
\n\n更新:它不会影响这个问题,但为了更清楚地说明,我问这个问题的原因是因为我有兴趣从Core Location获取 x、y 和 z 地磁数据值。在“核心位置”中,如果手机处于纵向模式,则 +x 朝右,+y 朝上,+z 朝用户。因此,ARKit 的相机坐标系似乎与 Core Location 中的相机坐标系不同。
\n让我们先解决一件事,landscapeRight主页按钮位于右侧,手机顶部位于左侧,这与您在图片中显示的不同。所以在你的绘图中,手机应该翻转 180 度。landscapeRight在这种情况下与设备方向不同
首先,Arkit 会话的坐标系将取决于AR 会话的世界对齐设置
所以你有三个选择
对于 z 轴,ARKit 选择指向设备相机面向的方向并垂直于重力轴的基本向量 (0,0,-1)
据此,z轴将指向相机面向的方向(因此对于前置摄像头,z轴将指向屏幕,而对于后置摄像头,z轴将远离手机并远离您)
然后用右手定则确定 X 轴
在这种情况下,相机将始终位于您的世界坐标空间中的 (0,0,0),y 轴将指向上方(如果您的手机处于纵向模式,则指向右侧),x 轴将从顶部指向手机朝向主页按钮,z 轴将指向远离设备的方向
好吧,我最初的图表是不正确的,正如 @Mart10 正确指出的那样。ARKit 相机上下文中的横向右侧意味着手机处于横向状态,主页按钮位于右侧。这篇文章更详细地解释了这一点。
这意味着相机坐标系约定是,当横向且主页按钮位于右侧时:+x:向右,+y:向上,+z:向后。
这与“传感器坐标系”不同,“传感器坐标系”是来自 Core Location 的 x、y 和 z 地磁数据值所在的坐标系。“传感器坐标系”是,当处于横向状态且主页按钮位于右侧:+x:向上,+y:向左,+z:向后。您可以使用变换在它们之间进行转换。
| 归档时间: |
|
| 查看次数: |
2761 次 |
| 最近记录: |