arcore:从锚点或姿势获取二维坐标

bbmckpt7  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(546)

这就是我用来获取所有特征平面的代码。

while (planeIterator.hasNext()){
                                    Plane plane =  planeIterator.next();

                                    if(plane.getTrackingState() == TrackingState.TRACKING && 
    (plane.getType() == Plane.Type.VERTICAL||plane.getType() == Plane.Type.HORIZONTAL_UPWARD_FACING)){

                                    Iterator<Anchor> anchors =  frame.getUpdatedAnchors().iterator();
                                   Anchor  newAnchor = plane.createAnchor(plane.getCenterPose());
                                 }
                             }

从文档中不清楚如何从锚点获取三维世界坐标。如果我能得到三维世界坐标,我可以用

ArFragment.getArSceneView().getScene().getCamera().worldToScreenPoint()

但是,如何让3d世界与现实世界协调呢 newAnchor ?

gc0ot86w

gc0ot86w1#

我认为您要求的是锚点的姿势-这可以从getpose()方法获得:
公共姿势getpose()
返回锚点在世界坐标空间中的姿势。
姿势的定义是一个物体的局部坐标的Map,也就是说,如果你只看物体本身,到世界坐标。它通常被描述为先旋转,然后平移。旋转使物体指向正确的方向,或正确定位,然后平移将其移动到世界坐标中正确的位置。
如果您查看pose类,您可以从中查询用例所需的任何信息。
一个简短的说明-我猜你知道,但sceneform没有被否决,或者更准确地说是开源,然后存档-请参阅这里:https://developers.google.com/sceneform/develop.

相关问题