conversion coordonnées (origine en haut/à gauche <--> en bas à gauche)
AP
Membre
Bonjour,
Je cherche à trouver la méthode qui marche dans tous les cas, pour un point donné en origine en haut à gauche, avoir la correspondance en origine en bas à gauche sachant que cela doit fonctionner dans toutes les configuration multi-écran possible.
Merci d'avance pour votre aide
Je cherche à trouver la méthode qui marche dans tous les cas, pour un point donné en origine en haut à gauche, avoir la correspondance en origine en bas à gauche sachant que cela doit fonctionner dans toutes les configuration multi-écran possible.
Merci d'avance pour votre aide
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
explore les methodes : Flipped et isFlipped
Avec les coordonnées de la souris (c'est ce point que tu veux localiser ?), tu dois pouvoir savoir sur quel écran se trouve le point et changer de système de coordonnées.
Je t'avoue que nous manquons un peu de détails sur ce que tu souhaites faire plus exactement.
C'est ce que j'utilise déjà mais ca ne marche pas dans tous les cas.
En fait je veux transformer des rectangles et des points d'un système à l'autre. Mon problème commence quand les frames de NSScreen et mon point ne sont pas dans le même système de coordonnées
Merci pour ta réponse.
Ok pour déterminer si c'est flipped ou non mais comment faire pour faire la transformation?
En MacOS tu dois aussi avoir dans la classe NSAffineTransform des méthodes pour transformer des NSPoint et des NSSize etc.
Suffit donc de créer une AffineTransform contenant la transformation à réaliser (scale(1,-1) suivi de translate(0,-frameHeight) genre) et ensuite appliquer cette transformation à tes NSRect, NSPoint, NSSize... ou même mieux, empiler ce NSAffineTransform dans le GraphicContext courant (avec un appel à -concat) comme ça elle est appliquée à toutes les opérations de dessin qui suivront dans ta vue...
Pour plus d'infos, tout est détaillé dans la doc