2017-09-24 3 views
0

Hallo, ich benutze ARToolKit v6, Marker basierend auf NFT JPG-Bild zu rendern, es funktioniert sehr gut, aber .. Ich muss die Position des Markers in Bildschirm (anzeigen) und fügen Sie eine benutzerdefinierte TextView dort ist das möglich ? Wie bekommt man die 2D-Position des Markers basierend auf projectionMatrix und ModelViewMatrix?2D Position des Markers

Oder kann ich einen Text oder ein Bild anstelle von Cube zeichnen?

Code

@Override 
public void draw() { 
    super.draw(); 

    GLES20.glEnable(GLES20.GL_CULL_FACE); 
    GLES20.glEnable(GLES20.GL_DEPTH_TEST); 
    GLES20.glFrontFace(GLES20.GL_CCW); 


    boolean show = false; 
    for (int trackableUID : trackableUIDs) { 
     if (ARToolKit.getInstance().queryMarkerVisible(trackableUIDs.get(trackableUID))) { 
      float[] projectionMatrix = ARToolKit.getInstance().getProjectionMatrix(); 
      float[] modelViewMatrix = ARToolKit.getInstance().queryMarkerTransformation(trackableUIDs.get(trackableUID)); 
      Log.i("INFOOOOO", projectionMatrix.toString()); 
      Log.i("INFOOOOO", modelViewMatrix.toString()); 
      cube.draw(projectionMatrix, modelViewMatrix); 
      show = true; 
     } 
    } 
} 
+0

Ich suche nicht wissen, was Sie erreichen wollen, aber vielleicht [Ist es möglich, die Oberfläche des Würfels zu erhalten, klicken Sie in OpenGL?] (https://stackoverflow.com/questions/45893277/is-it-possble-get-which-surface-of-cube-will-be- click-in-opengl/45946943 # 45946943) kann helfen. – Rabbid76

Antwort

0

@sturner Vielen Dank, fand ich eine Lösung unter der Code ist, wenn jemand für Lösung

  final float[] projectionMatrix = ARToolKit.getInstance().getProjectionMatrix(); 
      final float[] modelViewMatrix = ARToolKit.getInstance().queryMarkerTransformation(trackableUIDs.get(trackableUID)); 

      if (view == null) { 
       view = new int[4]; 
       view[0] = 0; 
       view[1] = 0; 
       view[2] = ARTrackingActivity.width; 
       view[3] = ARTrackingActivity.height; 
      } 

      int i = GLU.gluProject(0, 0, 0, modelViewMatrix, 0, projectionMatrix, 0, view, 0, floats, 0); 
      if (i == GLES20.GL_TRUE) { 
       // draw the object in screen 
      } 
Verwandte Themen