Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios ARKit&x27的定位是什么;什么是相机空间?_Ios_Swift_Transform_Augmented Reality_Arkit - Fatal编程技术网

Ios ARKit&x27的定位是什么;什么是相机空间?

Ios ARKit&x27的定位是什么;什么是相机空间?,ios,swift,transform,augmented-reality,arkit,Ios,Swift,Transform,Augmented Reality,Arkit,我想更好地理解ARKit的ARCamera变换所处的摄像机坐标空间,上面说 此变换为相机创建相对于设备方向恒定的局部坐标空间。在相机空间中,当设备处于定向状态时,x轴指向右侧,也就是说,x轴始终指向设备的长轴,从前向相机指向主页按钮。y轴指向上方(相对于UIDeviceOrientation.landscapeRight方向),z轴指向远离屏幕侧的设备 在这之后,他说: 设备处于横向模式,设备保持直立,且 左侧的主页按钮 当我试图理解这一点时,似乎设备处于UIDeviceOrientation.

我想更好地理解ARKit的ARCamera变换所处的摄像机坐标空间,上面说

此变换为相机创建相对于设备方向恒定的局部坐标空间。在相机空间中,当设备处于定向状态时,x轴指向右侧,也就是说,x轴始终指向设备的长轴,从前向相机指向主页按钮。y轴指向上方(相对于UIDeviceOrientation.landscapeRight方向),z轴指向远离屏幕侧的设备

在这之后,他说:

设备处于横向模式,设备保持直立,且 左侧的主页按钮

当我试图理解这一点时,似乎设备处于UIDeviceOrientation.landscapeRight方向时,x轴指向右侧的
“与
”之间存在冲突,也就是说,x轴始终指向设备的长轴,从正面摄像头指向主页按钮“
。前者右边有+x,后者左边有+x

下面是我如何描绘
“当设备处于UIDeviceOrientation.landscapeRight方向时,x轴指向右侧”

这就是我拍摄
“也就是说,x轴始终指向设备的长轴,从前向摄像头指向主页按钮”

谢谢你的帮助,谢谢


更新:这不会影响这个问题,但为了更清楚地说明,我之所以问这个问题,是因为我对从中获取x、y和z地磁数据值感兴趣。在核心位置,如果手机处于纵向模式,+x是正确的,+y是向上的,+z是朝向用户的。因此,ARKit的相机坐标系似乎与核心位置的相机坐标系不同。

让我们先排除一件事,
landscapeRight
的主页按钮位于右侧,手机顶部位于左侧,而不是图片中显示的内容。所以在你的画里,手机应该翻转180度<代码>landscapeRight
在这种情况下与设备方向不同

首先,Arkit会话的坐标系将取决于

所以你有三个选择

  • 在这种情况下,Y将指向上,与重力平行,无论设备的方向如何
对于z轴,ARKit选择一个基向量(0,0,-1),该基向量指向设备相机面对的方向并垂直于重力轴

  • 根据这一点,z轴将指向相机面对的方向(因此,对于前置摄像头,z轴将指向屏幕,对于后置摄像头,z轴将远离手机并远离您)

  • 然后用右手尺确定X轴

  • y轴将指向与重力平行的方向
  • z轴将指向南方(-z轴将指向正北)
  • x轴将指向东方

在这种情况下,摄影机将始终位于世界坐标空间中的(0,0,0)
y轴将指向上(如果您的手机处于纵向模式,则为右侧),x轴将从手机顶部指向home(主页)按钮,z轴将指向远离设备的方向

让我们先解决一个问题,
landscapeRight
的home(主页)按钮位于右侧,手机顶部位于左侧,与您在图片中显示的内容相反。所以在你的画里,手机应该翻转180度<代码>landscapeRight在这种情况下与设备方向不同

首先,Arkit会话的坐标系将取决于

所以你有三个选择

  • 在这种情况下,Y将指向上,与重力平行,无论设备的方向如何
对于z轴,ARKit选择一个基向量(0,0,-1),该基向量指向设备相机面对的方向并垂直于重力轴

  • 根据这一点,z轴将指向相机面对的方向(因此,对于前置摄像头,z轴将指向屏幕,对于后置摄像头,z轴将远离手机并远离您)

  • 然后用右手尺确定X轴

  • y轴将指向与重力平行的方向
  • z轴将指向南方(-z轴将指向正北)
  • x轴将指向东方

在这种情况下,摄影机将始终位于世界坐标空间中的(0,0,0)
y轴将指向上(如果手机处于纵向模式,则指向右侧),x轴将从手机顶部指向home(主页)按钮,z轴将指向远离设备的方向

好的,因此我的初始示意图不正确,正如@Mart10正确指出的那样。ARKit Camera上下文中的横向右侧表示手机处于横向,主页按钮位于右侧。更详细地解释了这一点

这意味着相机坐标系约定为,当在右侧使用“主页”按钮时:+x:right、+y:up、+z:backward


这与“传感器坐标系”不同,传感器坐标系是传感器输入的坐标系。“传感器坐标系”是,当在右侧使用home按钮时:+x:up、+y:left、+z:backward。您可以使用转换在它们之间进行转换。

好的,我的初始图表是不正确的,正如@Mart10正确指出的那样。ARKit Camera上下文中的横向右侧表示手机处于横向,主页按钮位于右侧。更详细地解释了这一点

这意味着照相机