J'ai un problème avec l'implémentation des événements tactiles sur GLSurfaceView
. La taille des vues est de 1280x696, à cause de la barre d'état android (tablette) au fond avec les touches, le temps etc., (résolution d'écran est 1280x800), mais OnTouchListener
reçoit des événements tactiles avec des coords [646.0,739.0], et ainsi ma méthode gluunproject ne parvient pas à renvoyer des valeurs correctes Existe-t-il un moyen de renvoyer des événements qui respectent ces limites? ou comment devrais-je recalculer la position?Comment obtenir les bonnes valeurs de l'événement tactile Views
Répondre
En général la transition entre ces systèmes de coordonnées: Si vous passer du système A à B et vous avez des points
- AOrigin (gauche coin supérieur de votre point de vue du récepteur)
- AEND (coin inférieur droit de votre point de vue du récepteur (origine + taille))
- BOrigin (coin supérieur gauche de votre vue GL)
- BEND (coin inférieur droit de votre point de vue GL (origine + taille))
où AOrigin et BOrigin représentent le même endroit en vue et va de même pour AEND et BEND alors pour le point P dans la vue du récepteur:
X = B.Origin.x + ((P.x - AOrigin.x)/(AEnd.x - AOrigin.x)) * (BEnd.x - B.Origin.x)
Y = B.Origin.y + ((P.y - AOrigin.y)/(AEnd.y - AOrigin.y)) * (BEnd.y - B.Origin.y)
Pour votre cas (je ne suis pas sûr à cause du manque de informations) AOrigin est à (0,0), AEND est à (646, 739), BOrigin est à (0,0) et BEND est à (1280, 800):
X = P.x/646 * 1280
Y = P.y/739 * 800
Vous pouvez également utiliser cette transition vers/depuis les coordonnées "GL". Un cas courant est d'avoir une vue avec le coin supérieur gauche à (0, 0) et le bas à (1280, 800) et vos coordonnées "GL" sont de (-1, 1) à (1, -1):
X = -1 + (P.x/1280)*2
Y = 1 + (P.y/800)*(-2)
Notez également que vous pouvez utiliser les 2 paires de points qui représentent même endroit sur l'écran aussi longtemps que (origin-end).x != 0
ET (origin-end).y != 0
- 1. Comment obtenir les bonnes touches s3?
- 2. Comment obtenir les coordonnées d'un événement tactile
- 3. Les bonnes pratiques de mod_rewrite
- 4. Comment obtenir les bonnes valeurs du moniteur de fréquence cardiaque Polar
- 5. Formulaire tactile ignorant les valeurs soumises
- 6. Comment obtenir une position tactile?
- 7. comment obtenir les valeurs de formulaire lorsque je clique sur soumettre dans sencha tactile
- 8. Je ne peux pas obtenir les bonnes valeurs de mon dictionnaire. Aucune suggestion?
- 9. mvc3, obtenir le nom et les valeurs à partir des listes déroulantes dans Razor Views?
- 10. Les références Perl ne retournent pas les bonnes valeurs
- 11. La base de données ne renvoie pas les bonnes valeurs?
- 12. Mon contrôleur MVC n'obtient pas les bonnes valeurs de Html.dropdownlist
- 13. Comment obtenir un événement tactile sur CPTLayer?
- 14. Tableau multidimensionnel ne renvoyant pas les bonnes valeurs
- 15. Comment obtenir l'emplacement tactile pendant scrollViewDidScroll
- 16. Valeurs de trames incorrectes lors de l'utilisation de Stack Views
- 17. Comment obtenir l'emplacement tactile d'une vue différente?
- 18. comment obtenir l'événement tactile sur CGRectMake spécifié
- 19. comment obtenir l'événement tactile sur les sous-vues et de déléguer les actions appropriées selon lui
- 20. NVD3 CumulativeLineChart n'est pas rendre les bonnes valeurs
- 21. Pourquoi MySQL Switch-Case ne sélectionne pas les bonnes valeurs?
- 22. Drupal 6 Views - Get & Set valeurs de filtre mémorisées
- 23. Java Chaîne fractionnée ne retournant pas les bonnes valeurs
- 24. Fetchrequest avec NSPredicate ne pas retourner les bonnes valeurs
- 25. Dropdown en PHP ne donnant pas les bonnes valeurs
- 26. Obtenez les bonnes images taille
- 27. Pourquoi le modèle ne rend-il pas les bonnes valeurs?
- 28. C# Méthodes ne pas imprimer les bonnes valeurs
- 29. connexion impossible, même après avoir mis dans les bonnes valeurs
- 30. Mon programme n'analyse pas les bonnes valeurs à droite