2015-11-14 2 views
0

Я может прямоугольники рисовать или квадраты в андроиде OpenGL, упоминая значения с плавающей точкой для вершин, как 0.1f, 1.2f и т.д. ...Использования сенсорных координат в Android OpenGL Renderer

private float vertices[] = { 

     -1.0f, 0.8f, 0.0f,  // V1 - bottom left 

     -1.0f, 1.0f, 0.0f,  // V2 - top left 

     1.0f, 0.8f, 0.0f,  // V3 - bottom right 

     1.0f, 1.0f, 0.0f   // V4 - top right 

}; 

Но я хочу, чтобы рисовать фигуры (прямоугольник), где мой пользователь касается ... например, если пользователь прикасается к (x, y) = (200px, 300px).

Я хочу, чтобы нарисовать небольшой прямоугольник там ... но когда я передать эти значения в вершинах прямоугольника выходит за пределы моего экрана ....

Может кто-нибудь помочь мне понять, как это сделать.

Спасибо.

ответ

0

Вашего прикосновение координаты приходит в экранных координат, которые пиксели на основе, в то время как в текущей ситуации, вы рендеринг в то, что часто называют нормализуются координаты устройства, которые позволяют привлечь из [-1, 1] в координатах X & Y.

Что вам не хватает, это преобразования, чтобы эти два пространства работали вместе. Возможно, самым простым решением для вашего сценария является рендеринг в экранных координатах. В основном, возьмите каждую из ваших сенсорных координат и переместите их в диапазон [-1,1]. Что-то вроде следующего должно работать:

x_drawing_coordinate = 2.0 * x_touch_coordinate/screen_width - 1.0 

и сделать то же самое для y-координаты, за исключением использования screen_height.

+0

Его работа ... Спасибо: D @ radical7 –

+0

В вершинах, которые я упомянул в вопросе о левом краю, который равен -1.0f .. левый край не находится на экране слева .... его рисунок немного от него. Можете ли вы объяснить, как заставить его рисовать по краям ... @ radical7 –

Смежные вопросы