Obtenir la résolution de l'écran

beltbelt Membre
06:36 modifié dans API AppKit #1
Bonjour
J'aurais besoin pour mon appli de tracer des objects (rectangles, cercles,..etc) dont la taille à  l'écran soit exactement la taille réelle (un object de longueur 1cm doit faire 1cm à  l'écran, double décimètre à  l'appui !). Pour celà , j'ai vainement cherché un peu partout (méthodes cocoa, fonctions quartz 2D,...) le moyen de déterminer la résolution de l'écran, mais je n'ai rien trouvé !
Quelqu'un aurait une idée ?
Merci d'avance pour votre aide.

Réponses

  • 06:36 modifié #2
    ça n'existe pas. Le mieux que tu puisses faire est:
    - soit demander à  l'utilisateur de mesurer la longueur d'une ligne avec une latte, et de te servir de la longueur 'mesurée' comme modificateur
    - soit demander à  l'utilisateur la taille de son écran (et le type, les CRT ont une diagonale visible à  la diagonale du tube) - à  partir de la résolution tu peux déduire l'aspect ratio de ration (si c'est un écran large ou pas), pas nécessaire de lui demander.
  • BruBru Membre
    06:36 modifié #3
    dans 1146923477:

    ça n'existe pas.


    Si, si, ça existe !

    La fonction Quartz CGDisplayScreenSize retourne en millimètre la taille de l'écran, ce qui permet de récupérer le dpi en combinant cette taille et la résolution courante.

    Le code suivant retourne la taille de l'écran principal :
    <br />CGSize s;<br />s=CGDisplayScreenSize(CGMainDisplayID());<br />
    


    Sur mon iMac G5 17', cela me retourne 370 en largeur et 230 en hauteur.

    Bon, un point négatif, il faut que l'écran soit conforme pour récupérer la taille de l'écran. Si ce n'est pas le cas, la fonction détermine cette vtaille par rapport à  un dpi de 72.

    .
  • 06:36 modifié #4
    Je suis content de voir que je me suis trompé.

    Ceci dit après vérification sur mes 2 écrans, ça ne donne pas un résultat ultra précis. Sur le 20' wide, j'ai une erreur de 3mm sur la largeur, la hauteur est OK. Par contre sur le powerbook, ça donne une erreur de 6mm sur la hauteur, pour la largeur c'est OK. Donc reste à  voir si tu estimes que cette imprécision est acceptable ou pas.
  • BruBru Membre
    06:36 modifié #5
    Je viens de tester sur un IBM 14' cathodique.
    J'obtiens en largeur 280 et en hauteur 210, la marge d'erreur est respectivement 3 et 4 mm.

    Donc reste à  savoir ce que le terme de "taille écran" signifie : taille physique, taille de la surface de balayage, etc...

    En conclusion, même si Renaud pense s'être trompé (et notons que c'est rare), il dit juste quand il parle de calibrage manuel (au moins, faire vérifier par l'utilisateur que la taille détectée est bien la taille "réelle").

    .
Connectez-vous ou Inscrivez-vous pour répondre.