ios - ARKit 电平测量
问题描述
我想知道如何像 iOS 12 Measure 应用程序那样使用 ARKit 创建水平测量应用程序。
我正在寻找过去 1 周的解决方案或想法。我看过很多视频和教程,但我不知道该怎么做。
我认为pointOfView
代表相机的 ARSceneview 节点可以用来做它,就像可以得到eulerAngles
并做某事,但我无法弄清楚。
请任何帮助或建议将不胜感激。我请求你不要关闭这个问题。
解决方案
为了获得电话的水平值,我建议使用self.sceneView.pointOfView?.orientation
(如果您只想要此 SCNVector 中的 3 个值之一,只需添加.x
,.y
或.z
最后)。
例如,如果我将手机完全直立,则值self.sceneView.pointOfView?.orientation.x
将约为 0。同样,将其倒置将给出约 1 或 -1 的值。
您可以使用这些值来确定手机在所有三个轴上的水平,并将它们转换为度数。
我建议将以下代码放在一个项目中,并通过一个按钮或一个不断运行它的循环来触发它,并观察值如何变化。希望这会有所帮助。(请注意,它sceneView
会替换为您的 ARKit SceneView 的名称。)
print(self.sceneView.pointOfView?.orientation.x)
print(self.sceneView.pointOfView?.orientation.y)
print(self.sceneView.pointOfView?.orientation.z)
推荐阅读
- r - 在 R 中引用同一变量中的前一个值,无循环
- react-native - React-native-webview:按下后退按钮时应用程序退出
- android - 一个回收站视图的两个适配器
- java - 在两个极限之间找到 3 和 5 的所有倍数 - 复杂性
- c++ - 在启动程序正常退出。gdb 不会在断点处中断
- ruby - 限制要执行的线程数
- azure - 无法通过 AccessToken 以及 ClientCredentialProvider 创建 GraphServiceClient 来使用 Graph API(C# 控制台)发送电子邮件
- python - Azure Application Insights 是否有最大日志长度?
- drupal - 在作曲家运行安装模块“VirtualAlloc”时出错
- flutter - 如何像下面的模拟一样在 Flutter 教科书中对文本框提示进行分层?