2017-07-23 80 views
2

我有一個簡單的SCNNode,我想將它置於真實世界的位置,該節點對應於具有已知座標的地標。使用真實世界軸承在ARKit場景中定位SCNNode

ARKit配置將worldAlignment屬性設置爲.gravityAndHeading,因此x軸和z軸應該已經與世界一致。

創建該節點後,我設置的位置在百米遠從

node.position = SCNVector3(0, 0, -100) 

那我想投影節點,但與正確的方位(從用戶和里程碑意義的座標)。我想旋轉的y軸旋轉的節點(偏航)

node.eulerAngles = SCNVector3Make(0, bearingRadians, 0) 

但是節點仍然指向正北方向,不管我有什麼值bearingRadians

我需要做額外的轉換嗎?

回答

1

隨着eulerAngles你只需要在自己的座標系統中旋轉你的節點。

您實際需要的是對節點相對於相機位置執行完整變換。根據您的方位,該變換是-z axis上的翻譯,然後是y-axis的(負)旋轉。

查看此ARKit WindRose回購對齊並投影現實世界中的基本方向:https://github.com/vasile/ARKit-CompassRose