2015-11-14 1 views
0

Je suis rectangles ou carrés capables d'exploiter dans Android opengl en mentionnant les valeurs flottantes pour les sommets comme 0.1f, 1.2f etc ...L'utilisation tactile coordonnées dans les applications 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 

}; 

Mais je veux dessiner des formes (rectangle) où mon utilisateur touche ... par exemple si l'utilisateur touche (x, y) = (200px, 300px).

Je veux dessiner un petit rectangle là-bas ... mais quand je passe ces valeurs dans les sommets du rectangle est en dehors des mon écran ....

Quelqu'un peut-il me aider à comprendre comment accomplir cela.

Merci.

Répondre

0

Votre contact coordonnées entrer les coordonnées écran, qui sont à base de pixels, alors que dans votre situation actuelle, vous rendre dans ce qui est souvent nommé des coordonnées dispositif normalisé, ce qui vous permet de dessiner dans de [-1, 1] dans les coordonnées X & Y.

Ce qui vous manque, ce sont les transformations pour faire fonctionner ces deux espaces ensemble. Peut-être la solution la plus simple pour votre scénario est de rendre en coordonnées d'écran. Fondamentalement, prenez chacune de vos coordonnées tactiles et le mapper dans la gamme [-1,1]. Quelque chose comme ce qui suit devrait fonctionner:

x_drawing_coordinate = 2.0 * x_touch_coordinate/screen_width - 1.0 

et faire la même chose pour la coordonnée y, sauf utiliser le screen_height.

+0

Son travail ... Merci: D @ radical7 –

+0

Dans les sommets dont je l'ai mentionné dans la question pour le bord gauche qui est de -1,0f .. le bord gauche n'est pas à l'écran à gauche .... son peu de dessin loin de là..Pouvez-vous expliquer comment le faire dessiner sur les bords ... @ radical7 –