我试图达到的效果是从相机的pointOfView
位置指出一个箭头,与x和z轴上的场景(和重力)对齐,但指向与相机相同的方向。它看起来是这样的:欧拉角度Y值受X和Z值的影响 - 我如何将它们归零以获得“真实”的y值?
现在,我有它的欧拉角度x
和z
设置为0
,这是y
集以匹配ARSCNView.pointOfView.eulerAngles.y
的。问题是,当我旋转设备时,eulerAngles.y
最终可能会得到不同点的相同值。例如,在一个方向朝向设备,我eulerAngles
是:
x: 2.52045, y: -0.300239, z: 3.12887
在另一个方向面对它时,eulerAngles
是:
euler angles x: -0.383826, y: -0.305686, z: -0.0239297
即使这些方向相距较远,eulerAngles
仍然几乎相同。不同的x
和z
值意味着y
值不代表设备正面对哪个方向。结果,我的箭头沿着相机的方向前进到某个点,然后开始向相反方向旋转。我怎样才能将x
和z
的值清零,以便我得到一个真实的y
值,然后我可以用它来定向我的箭头?
是否需要一个3D对象,其位置/方向基于当前相机的*当前*位置/方向,并且此后保持不变,或者是否需要位置/方向始终固定的3D对象即使照相机移动,也能照相机?对于每种情况,解决方案都是相当不同的 – rickster