ARKit 的相机空间朝向是什么?

2024-04-08

我想更好地理解 ARKit AR Camera 变换所在的相机坐标空间。在文档中 https://developer.apple.com/documentation/arkit/arcamera/2866108-transform, 它说

此变换为相机创建一个相对于设备方向恒定的局部坐标空间。在相机空间中,当设备位于UIDeviceOrientation.landscapeRight https://developer.apple.com/documentation/uikit/uideviceorientation/landscaperight方向 - 即,x 轴始终沿着设备的长轴指向,从前置摄像头指向“主页”按钮。 y 轴指向上方(相对于 UIDeviceOrientation.landscapeRight 方向),z 轴指向远离屏幕一侧的设备。

按照此,UIDeviceOrientation.landscapeRight 文档 https://developer.apple.com/documentation/uikit/uideviceorientation/landscaperight says:

设备处于横向模式,设备直立放置, 左侧的主页按钮。

当我试图理解这一点时,似乎之间存在冲突"the x-axis points to the right when the device is in UIDeviceOrientation.landscapeRight orientation" and "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":

感谢任何帮助,谢谢!

更新:它不会影响这个问题,但为了更清楚地说明,我问这个问题的原因是因为我有兴趣从以下位置获取 x、y 和 z 地磁数据值核心位置 https://developer.apple.com/documentation/corelocation/clheading。在“核心位置”中,如果手机处于纵向模式,则 +x 朝右,+y 朝上,+z 朝用户。因此,ARKit 的相机坐标系似乎与 Core Location 中的相机坐标系不同。


让我们先解决一件事,landscapeRight主页按钮位于右侧,手机顶部位于左侧,这与您在图片中显示的不同。所以在你的绘图中,手机应该翻转 180 度。landscapeRight在这种情况下与设备方向不同

首先,Arkit 会话的坐标系将取决于AR 会话的世界对齐设置 https://developer.apple.com/documentation/arkit/arconfiguration/worldalignment

所以你有三个选择

Gravity https://developer.apple.com/documentation/arkit/arconfiguration/worldalignment/gravity

  • 在这种情况下,无论设备的方向如何,Y 都会指向上方,与重力平行

对于 z 轴,ARKit 选择指向设备相机面向的方向并垂直于重力轴的基本向量 (0,0,-1)

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

  • 然后用右手定则确定 X 轴

重力和航向 https://developer.apple.com/documentation/arkit/arconfiguration/worldalignment/gravityandheading

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

Camera https://developer.apple.com/documentation/arkit/arconfiguration/worldalignment/camera

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ARKit 的相机空间朝向是什么? 的相关文章

  • 什么是 WKWebView 中的 WKErrorDomain 错误 4

    fatal error LPWebView encounters an error Error Domain WKErrorDomain Code 4 A JavaScript exception occurred UserInfo 0x7
  • iOS - UITableViewCell 使文本加粗

    我有一个字符串 NSString userInfo James Johnson james 我想做的就是大胆James Johnson并保留 james正常字体 所以我尝试过的是使用NSAttributedString但为了完成这个过程 我
  • 将 UIToolBar 添加到所有键盘(swift)

    我正在尝试以尽可能少的重复次数将自定义 UIToolBar 添加到我的所有键盘中 我目前的做法要求我将代码添加到所有 viewDidLoads 中 并将每个文本字段的委托分配给我正在使用的 viewController 我尝试创建自己的 U
  • 如何动态获取 UITableViewCell 的高度

    我创建了自定义的tableViewCell 我在UITableViewCell中添加了UIView SubView 所以我在 UIView 中的所有动态文本和图像内容都会根据文本和图像大小而变化 但现在 HeightforRowAtInde
  • 有没有办法在 Firebase 中等待查询完成?

    我正在使用 TableView 在 Viewcontroller 中的 iOS 应用程序中进行查询 我想确保在继续加载 TableView 之前我的查询已经返回 有没有办法保证查询已经完成 None
  • Xamarin - 错误:dsymutil 退出,代码为 72

    最近升级到 VS for Mac 8 10 21 在构建应用程序时 我得到 Xamarin Shared targets 3 3 Error dsymutil exited with code 72 这是 Xcode 13 3 的情况 完整
  • 如何删除 UITableView 中的缩进?

    首先 我对此很陌生 我很可能忘记了一些非常简单的事情 问题 我正在制作一个应用程序 在 a 中显示来自 imgur com 的随机图像tableView 由于某种原因 所有单元格都会缩进少量 如下图所示 我摆弄了许多设置storyboard
  • iOS 7 tabBar 横线,如何去掉?

    Apple 在 iOS 7 中的 tabBar 上添加了一条细线 该线应该在 tabBar 和 UI 之间起到阴影或淡入淡出的作用 由于我使用的是定制的 tabBar 这条线非常令人恼火 你如何删除它 请告诉我这是可能的 否则我需要重新设计
  • AVAudioPlayer 无法从网站播放 m4a 或 mp3 文件类型

    我试图在我的应用程序中找到一个仅纯 m4a 声音的 URL 我有音频的 URL 理论上可以下载它 然后 使用下载的文件URL到声音 我尝试使用AVAudioPlayer播放它 但它不播放任何声音 这是我的代码 在 URL 检索函数中 我调用
  • 在 iOS 上使用 RNCryptor 异步解密大文件

    我需要在 iOS 上使用 RNCryptor 异步解密一个大文件 以便显示进度条 我在任何地方都找不到示例 因此尝试了我猜对的方法 但是 我想出的方法不起作用 解密器的处理程序从未被调用 并且线程在发送所有数据后因 EXC BAD ADDR
  • 关闭捕获上下文 Swift

    当我尝试更改闭包中的变量时出现此错误 A C function pointer cannot be formed from a closure that captures context 是否有解决方法或者仍然可以更改闭包内的变量 My C
  • 使用 UITabBarController 时覆盖整个屏幕的视图?

    我想在 UITabBarController 设置中在整个屏幕上覆盖 HUD 样式的透明图形 执行此操作的按钮位于第一个选项卡的屏幕 FirstViewController 中 并且覆盖层也应该覆盖选项卡 这可能吗 您可以将新视图直接附加到
  • 防止 iOS 键盘在 cordova 3.5 中滚动页面

    我正在使用 Cordova 3 5 和 jQuery mobile 构建 iOS 应用程序 我在大部分应用程序中禁用了滚动功能 但是 当我选择输入字段时 iOS 键盘会打开并向上滚动页面 我不想要这个功能 由于输入足够高 键盘不会覆盖它 我
  • 在 Objective-C 中的 Swift 类上调用 NSStringFromClass 返回模块损坏的名称

    我知道这个问题 https stackoverflow com questions 24107658 get a user readable version of the class name in swift in objc nsstri
  • Xcode 异步单元测试在主线程上等待

    我正在尝试使用 Xcode 中的单元测试来测试一些异步代码 但主线程被阻塞 问题在于 某些正在测试的代码期望从 iOS 类 AVFoundation 接收回调 但是 AVFoundation 类似乎只会在主线程上回调 问题是 如果我正在进行
  • 在 SwiftUI 中使用可观察对象切换视图

    我正在练习尝试使用 SwiftUI 中的可观察对象切换视图 但我的代码无法正常工作 我知道我可以用 State 来做到这一点 但我想用可观察的对象来实现这一点 当我单击内容视图中的图像时 图像不会改变 有人能帮我吗 内容视图 swift i
  • UIViewController 内的 UIsearchController 使用自动布局

    有没有人成功实施过UIViewController其中包含两个UISearchController searchBar and a UItableView使用自动布局来布局所有内容 我正在尝试实现类似的目标1密码 https itunes
  • 致命错误:在 Swift 中解包可选值时意外发现 nil

    所以我试图获取 Swift 中输入字段的文本 这就是我得到的 class ViewController UIViewController IBOutlet var passwordField UITextField IBOutlet var
  • 如何在 UITableView 的 switch 语句中创建变量?

    我正在构建一个包含三个部分的 tableView 我已经完成了前两个工作 但最后一个有点阻力 我的问题似乎涉及尝试在 switch 语句中声明变量 实际上是嵌套的 switch 语句 据我所知 这不是一个好主意 但在这种情况下 这似乎是唯一
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • 当我在表单中输入输入时,React 组件不必要地重新渲染

    我有一个反应组件来管理用户登录和退出 当用户在登录字段中输入电子邮件和密码时 整个组件 导航栏 在每次击键时都会重新渲染到 Dom 从而降低了速度 当用户在登录字段中输入凭据时 如何防止导航栏重新呈现 import React useCon
  • 确定一个点是否在由给定纬度/经度的 3 个点组成的三角形内

    我有 3 个点 lat lon 形成一个三角形 我如何找到一个点是否在这个三角形内 Java 代码只是三角形 即 3 个点 public static boolean pntInTriangle double px double py do
  • 使用 Devise 设置会话长度

    我的会话在 1 3 小时未使用后超时 不确定具体多长时间 我该如何调整这个 我查看了文档 似乎找不到这方面的设置 查看 config initializers devise rb 有很多配置设置 包括config timeout in 我的
  • 主线程中的Python套接字接受防止退出

    我正在使用 python 中的套接字 只是为了了解它们 然而 我真的对以下问题感到恼火 import socket soc socket socket socket AF INET soc bind localhost 8000 soc l
  • Twig,减去 2 个日期

    如何用 twig 减去两个日期 我有一个结束日期和一个开始日期 我想要两者之间的差异 例如 对于日期 2015 02 20 和 2015 02 13 我应该获得 7 我怎样才能做到这一点 感谢帮助 第一个解决方案 推荐 使用现有库 您可以使
  • 函数模板专门化类型 - 是可选的吗?

    Is the
  • 重置 HTML5 无效输入状态

    经过验证的输入最初不会被标记为无效 直到值发生更改 如何恢复这个初始状态 我的问题的详细信息 我有一个简单的订单 如果用户单击 添加项目 按钮 我将克隆第一个项目并清空输入字段 但由于我使用的是 html5 验证 清空会使它们无效 这是单击
  • 用于 BroadcastReceiver 的 Firebase 云消息传递意图过滤器是什么?

    我试图在 Android 系统收到 Firebase Cloud 消息通知时运行 Android BroadcastReceiver public class MyBroadcastReceiver extends BroadcastRec
  • 在 Android 上使用 Canvas 绘制两条线之间的区域

    我正在为我的应用程序开发一个简单的统计图形类 我尝试过 aChartEngine 和其他更多 但我更喜欢使用我自己的类 我正在使用包含 Android 的 Canvas 类绘制图形 但问题是我不知道如何填充线条和底部边框之间的区域 现在 矩
  • 在现有工作区上使用新 Eclipse 时如何重新附加 subclipse

    我的工作区中有一些项目是使用 Subclipse 从 SVN 导入的 现在 我使用新版本的 Eclipse 带有 Subclipse 打开此工作区 并且 团队 上下文菜单仅包含 应用补丁 有没有办法让 subclipse 处理这些项目 而无
  • Angular 2:防止路由器添加到历史记录

    我们有一个客户 在我们的应用程序中使用 iFraming 访问他们的网站 他们不希望我们应用程序中的路由器导航影响他们自己网站的后退按钮导航 我们尝试了几种方法 包括使用发布消息来尝试在history back 被触发时让iFrame与父窗
  • 忽略 Inf 值并运行 lm 回归

    这些是我的变量 gt dput y c 22 0713165394207 14 0880914427811 10 9650636244176 1 96648890706268 5 30593850426708 7 5465191603778
  • @MainActor 类是对主要参与者的扩展吗?

    如果正在上课 MainActor MainActor class MyClass NSObject 这是否将其所有扩展放在 MainActor还有 extension MyClass Yes As SE 0316 全球演员 https gi
  • 无法更改购物车总计中的 WooCommerce 优惠券标签

    事实证明 这是一个我无法解决的挑战 我几乎在其他地方都处理过将 优惠券 重命名为 促销 的工作 然而 调用优惠券名称和LABEL的WC LABEL的重命名就困难了很多 这是我正在谈论的内容的屏幕截图 我几乎已将站点范围内 优惠券 的所有用途
  • 为什么预期的字符串变成元组[重复]

    这个问题在这里已经有答案了 我预计变量output format成为一个字符串 但是当我运行脚本时它给了我一个tuple类型并抛出异常 如果我在 Python 解释器中运行 它会给我一个预期的字符串 sout standard access
  • 使用 PHP 内置 Web 服务器进行无脂路由

    我正在学习 fatfree 的路线 发现它的表现出乎意料 这是我在index php中的代码 f3 require once dirname dirname FILE lib base php f3 Base instance echo r
  • 如何将 UIView 出口连接到自定义子视图

    我还是 xcode iOS 新手 并且有以下问题 为了显示一些移动调试信息 我将 UIview 作为出口属性添加 连接到我的视图控制器之一 该视图是 UIview 的自定义子类 现在 我添加了一些 UIlabels 作为子视图到该视图中 并
  • 在 Java 中从 XML 生成/获取 Xpath

    我对建议 伪代码代码 解释而不是实际实现感兴趣 我想浏览 XML 文档及其所有节点 检查节点属性是否存在 如果节点没有属性 get generate String with value of its xpath如果节点确实有属性 则迭代属性
  • 使用编辑器/显示模板中的部分

    我想将所有 JavaScript 代码保留在一个部分中 就在收盘前body在我的主布局页面中标记 只是想知道最好的方法 MVC 风格 例如 如果我创建一个DisplayTemplate DateTime cshtml文件使用 jQuery
  • ARKit 的相机空间朝向是什么?

    我想更好地理解 ARKit AR Camera 变换所在的相机坐标空间 在文档中 https developer apple com documentation arkit arcamera 2866108 transform 它说 此变换