#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);