我正在研究一个陈旧的AR项目,我正在更新它。这使用了ARCore。我能够更新所有功能,但只是在某一点上感到困惑。 之前,我可以使用当前帧并使用以下行进行旋转和平移:
arFrame.getPose()。getTranslation(translation,0); arFrame.getPose()。getRotationQuaternion(rotation,0);
但是现在我认为getTranslation()和getRotationQuanternion()已经在Pose for ARCore下移动了。那么,我如何将它用于框架?
由于
答案 0 :(得分:2)
如果您的项目是使用其中一个SDK预览创建的,那么ARCore API可能会略有改变。目前的姿势现在与Camera
而不是Frame
相关联。您可以先获取对相机的参考来访问该姿势:
Camera camera = arFrame.getCamera();
Pose pose = camera.getPose();
pose.getTranslation(translation, 0);
pose. getRotationQuaternion(rotation, 0);
请注意,这仅在Camera
的当前跟踪状态为TRACKING
时才有用,因此您可能需要在提取Pose
之前检查{{1}}:{{3} }