Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在ARcore的帮助下相对于一个锚点定位锚点/节点/锚点节点?_Java_Android_Arcore - Fatal编程技术网

Java 如何在ARcore的帮助下相对于一个锚点定位锚点/节点/锚点节点?

Java 如何在ARcore的帮助下相对于一个锚点定位锚点/节点/锚点节点?,java,android,arcore,Java,Android,Arcore,我正在android studio中创建内部楼宇AR导航。 我正在寻找一种方法来“连接”锚和其他锚,或者锚节点/节点。我不知道该用哪一个。基于我将强制用户创建的第一个锚点,我希望绘制相对于第一个锚点位置的其余节点。我尝试过下面所示的方法,但没有成功。有什么想法吗 private void getAnchors(DataSnapshot dataSnapshot){ double temp_x=0.0; double temp_y=0.0; double temp_z=0.

我正在android studio中创建内部楼宇AR导航。 我正在寻找一种方法来“连接”锚和其他锚,或者锚节点/节点。我不知道该用哪一个。基于我将强制用户创建的第一个锚点,我希望绘制相对于第一个锚点位置的其余节点。我尝试过下面所示的方法,但没有成功。有什么想法吗

private void getAnchors(DataSnapshot dataSnapshot){
    double temp_x=0.0;
    double temp_y=0.0;
    double temp_z=0.0;
    Vector3 wektor3;

    for(DataSnapshot ds : dataSnapshot.getChildren())
    {
          ObjectConversion vars = ds.getValue(ObjectConversion.class);
          temp_x = vars.getX();
          temp_y = vars.getY();
          temp_z = vars.getZ();

          wektor3 = new Vector3((float)temp_x,(float)temp_y,(float)temp_z);

          //Pose pose = new Pose(translation,rotation);
          Anchor anchor = download_hit_result.createAnchor();
          AnchorNode anchorNode = new AnchorNode(anchor);
          Node node = new Node();

          node.setParent(anchorNode);
          node.setWorldPosition(wektor3);
          node.setRenderable(andyRenderable);

          //anchorNode.setParent(arFragment.getArSceneView().getScene());
          //anchorNode.setRenderable(andyRenderable);
          //anchorNode.setParent(arFragment.getArSceneView().getScene());
    }
}

我已经发现了一个错误。对于需要基于不同对象定位对象的任何其他人。简单地说,必须将锚链节点的父节点设置为arFragment。我希望这对未来的任何人都有帮助:

private void getAnchors(DataSnapshot dataSnapshot){
    double temp_x=0.0;
    double temp_y=0.0;
    double temp_z=0.0;
    long   temp_val=0;
    String temp_room="";
    float[] translation= new float[3];
    float[] rotation = {0.0f,0.0f,0.0f,0.0f};
    Vector3 wektor3;
    for(DataSnapshot ds : dataSnapshot.getChildren())
    {
        //TODO: create anchors with downloaded values when in the same position use hitpose.creatanchor with pose.

          ObjectConversion vars = ds.getValue(ObjectConversion.class);
          temp_x = vars.getX();
          temp_y = vars.getY();
          temp_z = vars.getZ();
          temp_room = vars.getRoom();
          temp_val=vars.getType();

          translation[0]=(float) temp_x;
          translation[1]=(float) temp_y;
          translation[2]=(float) temp_z;
          wektor3 = new Vector3((float)temp_x,(float)temp_y,(float)temp_z);
          Pose pose = new Pose(translation,rotation);

          Anchor anchorx = download_hit_result.getTrackable().createAnchor(pose);
          AnchorNode anchorNodex = new AnchorNode(anchorx);
          anchorNodex.setParent(arFragment.getArSceneView().getScene());
          anchorNodex.setRenderable(andyRenderable);
    }
}