OpenGL / Android - Настройка 2D-системы координат OpenGL, которая соответствует пикселям экрана - PullRequest
1 голос
/ 30 апреля 2011

Я пытаюсь нарисовать несколько кругов на экране, используя OpenGL ES 1.5 для Android.Они рисуют, но я хочу иметь возможность ввести x = 300, y = 500, и он будет рисовать окружность с центром в этой координате (например, в (300 500) пикселях на экране).В настоящее время я рисую и перевожу круги, но это не точно, я не знаю, как получить их именно там, где я хочу: вот какой-то неработающий код из моей последней попытки:

//doesn't take w/h ratio into consideration, not sure how to implement that
gl.glViewport(0, 0, windowWidth, windowHeight);
gl.glOrthof(0,windowWidth,   0, windowHeight,    1, 2);
GLU.gluLookAt(gl,   0, 0, 5,    0, 0, 0,    0, 1, 0);

//And for drawing a circle, with the desired x and y coordinates:
for (int j = 0; j &lt number_Triangles; j++) {
  x = Math.cos(theta) + xCoor;
  y = Math.sin(theta) + yCoor;
  z = 1;
 theta += 2 * Math.PI / (number_Triangles);
}

1 Ответ

2 голосов
/ 30 апреля 2011

Если вы работаете с 2D-графикой, я бы порекомендовал gluOrtho2D (слева, справа, снизу, сверху).Таким образом, вы точно контролируете, какие координаты будут отображаться на каждом краю экрана.

Так, например, вы можете иметь:

gl.glViewport (0,0, windowWidth, windowHeight);GLU.gluOrtho2D (-2.0f, 2.0f, -2.0f, 2.0f);

для (int j = .....

...