Find Distance Between Armarker And Camera In Artoolkit's Android Java Sdk
Solution 1:
I think you are looking at the wrong positions in the matrix. The camera x,y,z is inside the last column of the transformation matrix:
queryMarkerTransformation(int markerId);
Returnsfloatarraywith16 values. The values represent an OpenGL style transformation matrix.
The first4values represent the firstcolumnof the matrix.
i.e:
float[16] = [0.24218401, 0.9598883, 0.14125957, 0.0, -0.8614648, 0.2801126, -0.42357886, 0.0, -0.44614935, -0.019116696, 0.8947546, 0.0, 23.678268, -6.4265084, -298.65326, 1.0]
The matrix looks like:
0.24218401-0.8614648-0.4461493523.6782680.95988830.2801126-0.019116696-6.42650840.14125957-0.423578860.8947546-298.653260.00.00.01.0
The lastcolumn represents x,y,z in the camera coordinate system.
The source for that is here: https://www.hitl.washington.edu/artoolkit/documentation/tutorialcamera.htm I believe. (But somehow I cannot reach the url right now)
Now you are also reading the projection matrix, not the transformation matrix. (https://github.com/artoolkit/artoolkit5/blob/master/AndroidStudioProjects/ARSimpleProj/aRSimple/src/main/java/org/artoolkit/ar/samples/ARSimple/SimpleRenderer.java#L98)
If I tracked that down correctly value [14] should give you the distance to the marker.
Update: I just wrote down a more detailed explanation here: http://augmentmy.world/artoolkit-distance-between-camera-and-marker
Post a Comment for "Find Distance Between Armarker And Camera In Artoolkit's Android Java Sdk"