Как получить координаты экрана из мировых координат в OpenGL Android

#android #opengl-es

#Android #opengl-es

Вопрос:

Я столкнулся с ситуацией, в которой мне нужно вычислить координаты экрана из набора мировых координат. Как я могу это сделать в opengl Android.

Ответ №1:

Реализуйте логику gluProject() , которая заключается всего в нескольких матричных умножениях.

Комментарии:

1. В качестве примечания, в связанной документации отсутствует упоминание шага разделения перспективы v » / = v»(3) , выполняемого после шага v» = P x M x v .

2. Эй, я попробовал gluproject, результаты довольно странные… Вот мои матрицы и верности

3. float[] ModelView = target.getViewMatrix(); float[] projection = target.getProjectionMatrix(); float[] modelViewprojectionarray = target.getModelViewProjectionMatrix(); int[] view = {0,0,(int)screenWidth, (int)screenHeight}; float x = screenWidth / 2, y= screenHeight / 2, z = 0.01f; float[] pos = новый float[4]; GLU.gluProject(x, y, z, ModelView, 0, projection, 0,view, 0, pos, 0); float xmovedValue = convertPixelsToDp(pos[0],this); float ymovedValue = convertPixelsToDp(pos[1],this);