gpt4 book ai didi

ios - ARSCNView 的根节点的 "heading"与设备标题不匹配

转载 作者:行者123 更新时间:2023-11-29 00:17:24 24 4
gpt4 key购买 nike

我想要一个添加到场景中的节点指向北方。我从 Core Location 获取航向数据,因此它表示设备在我的场景创建时当前所面对的方向(因此我的根节点所面向的方向),然后我将航向添加到我的新 sceneNode' 中。 eulerAngles.y , 旋转它使其面向北方。

func renderer(_ renderer: SCNSceneRenderer, didRenderScene scene: SCNScene, atTime time: TimeInterval) {
if sceneNode == nil,
let heading = self.locationManager.heading {
sceneNode = SCNNode()
sceneNode.eulerAngles.y += Float(heading).degreesToRadians
sceneView.scene.rootNode.addChildNode(sceneNode)
}
}

航向信息是正确的,因此将其旋转那么多确实会旋转所需的量,假设航向与我的根节点所面向的方向相同。但我发现我的根节点的方向并不等于设备的航向,有时可能会出现很大的偏差。所以这意味着航向与场景节点的“航向”相同的假设是不正确的,我需要能够知道它离航向有多远,这样我就可以在我的 sceneNode 中正确地更正它。 .

最佳答案

更改 session 配置的 worldAlignment.gravityAndHeading

使用默认的 .gravity 对齐方式,AR 世界坐标系的 x 轴和 z 轴指向的位置没有绝对引用 - 它们的方向基于 session 时设备的初始方向开始。

使用 .gravityAndHeading 选项,x 轴和 z 轴与罗盘方向对齐,因此您可以相对于罗盘方向安全地定向内容。

关于ios - ARSCNView 的根节点的 "heading"与设备标题不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44967872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com