2011-04-29 2 views
1

J'essaye d'obtenir des cercles dessinés à l'écran en utilisant OpenGL ES 1.5 pour android. Ils dessinent, mais je veux être en mesure d'entrer x = 300, y = 500, et il dessine le cercle centré à cette coordonnée (par exemple au pixel (300,500) sur l'écran). À l'heure actuelle, je dessine et traduis les cercles, mais ce ne est pas précis, je ne sais pas comment exactement où je le veux: voici quelques code cassé de ma dernière tentative:OpenGL/Android - Configuration d'un système de coordonnées orthogonales 2D OpenGL qui correspond aux pixels de l'écran

//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

«mais ce ne est pas précis »: Que voulez-vous dire – genpfault

+0

Les cercles coordonnent ne sont pas alignés avec les x, y coords I généré en utilisant mon éditeur de niveau Ils étaient asymétriques et décentrés, et je cherche un contrôle précis. –

Répondre

2

Si vous faites 2D graphiques, je recommanderais gluOrtho2D (gauche, droite, bas, haut). De cette façon, vous avez un contrôle précis sur les coordonnées qui vont correspondre à chaque bord de votre écran.

Ainsi, par exemple, vous pourriez avoir:

gl.glViewport (0,0, WindowWidth, WindowHeight); GLU.gluOrtho2D (-2,0f, 2,0f, -2,0f, 2,0f);

for (int j = .....

Questions connexes