centimètres, pixels

Sujets variés concernant le développement en PureBasic
Invité

Message par Invité »

disont qu'un cm = 10 pixel en 640*480
je prend ma regle, la plaque contre l'ecran et verifi que sa fait bien 1 cm. bon c'est ok, maintenant je me met en 1280*1024 je replaque ma regle et.. ho 1cm n'est plus egal a 10 pixel, donc 1 pixel <> 1 pixel suivant les resolutions!!
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

ben non, ça dépend de la taille de l'écran (convertir la diagonal de pouce en centimètre), de son format (4/3 ou 16/9 qui se retrouve à partir de la résolution, de cela, on peut trouver la longueur et la hauteur de l'écran), ensuite, il suffit de diviser la taille de l'écran par le nombre de pixel et c'est bon.

Bon ce truc n'est valable que ur l'écran. pour l'impression c'est autre chose car tous dépend de la résolution à laqualle l'on va imprimer. c'est ce que donne par exemple adobe photoshop mais cette résolution étant paramétrable...

vala, je fais un code vite fais et je le poste pour voir, ça m'amuse cette question :wink:
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

L' affaire se corse !!!! :lol:

Un millimetre est une unité de mesure !!!
Un gramme, aussi !!!

Un pixel, ce n'est pas une unité de mesure. C'est le plus petit élément d'une surface de visualisation auquel on puisse affectuer individuellement des caractéristiques visuelles.
Plus la résolution est grande, plus il y a de pixels, autant en largeur qu'en hauteur. La taille du moniteur reste fixe. (Enfin, en principe :drinking: )

C'est ce qui fait qu'une plus grande résolution donne une image plus fine, mais également, des fichiers plus gros.

Pour résumer:
Un pixel, c'est un pixel, quelque soit la résolution
Plus la résolution est grande, plus le pixel est petit!
Plus les pixels sont petits, plus il en faudra dans 1 cm

Voilà ce que j'en pense! :lol:

Chris :)
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

Le code qui donne le rapport pixel/cm et qui affiche un trait de 1 cm de long, prenez vos règles, chez moi, ça marche :wink:

Code : Tout sélectionner

Procedure Actualise()
  ; Calcul du rapport pixel/cm
  Rapport.f = Val(GetGadgetText(4)) / ((GetGadgetState(2) + 10) * 2.54) / Cos(ATan(Val(GetGadgetText(5)) / Val(GetGadgetText(4))))
  ; Affichage du rapport
  SetGadgetText(7, StrF(Rapport, 5))
  ; dessin d'un trait de longueur 1 cm sur l'image
  StartDrawing(ImageOutput())
    Line(5, 21, 134, 0, RGB(255, 255, 255))
    Line(5, 21, Round(Rapport + 0.5, 0), 0, 0)
  StopDrawing()
  ; Actualisation de li'mage
  SetGadgetState(8, UseImage(0))
EndProcedure


;- Debut du programe

If OpenWindow(0, 0, 0, 150, 195, #PB_Window_ScreenCentered | #PB_Window_SystemMenu, "Mesure")
  If CreateGadgetList(WindowID())
  
    ; Taille de l'écran
    TextGadget(1, 3, 3, 144, 15, "Taille de l'écran", #PB_Text_Center)
    ComboBoxGadget(2, 3, 18, 144, 500) ; Liste des tailles d'écran
    For i = 10 To 30 ; On rempli la liste des tailles
      AddGadgetItem(2, -1, Str(i) + " pouces")
    Next
    SetGadgetState(2, 7)
    
    TextGadget(3, 3, 45, 144, 15, "Résolution", #PB_Text_Center)
    
    ; Résolution de l'écran
    X = GetSystemMetrics_(#SM_CXSCREEN)
    Y = GetSystemMetrics_(#SM_CYSCREEN)
    
    ; Calcul du rapport pixel/cm
    Rapport.f = X / ((GetGadgetState(2) + 10) * 2.54) / Cos(ATan(Y / X))
    
    ; Dimension de l'écran
    StringGadget(4, 3, 60, 144, 20, Str(X), #PB_String_Numeric)
    StringGadget(5, 3, 80, 144, 20, Str(Y), #PB_String_Numeric)
    
    ; Rapport pixel/cm
    TextGadget(6, 3, 105, 144, 15, "Rapport pixel / cm", #PB_Text_Center)
    StringGadget(7, 3, 120, 144, 20, StrF(Rapport, 5))
    
    ; Création de l'image pour afficher un trait de 1 cm de long
    CreateImage(0, 144, 30)
    StartDrawing(ImageOutput())
      FontID = LoadFont(0, "Tahoma", 8, #PB_Font_HighQuality)
      Box(0, 0, 144, 30, RGB(0255, 255, 255))
      DrawingMode(4)
      Box(0, 0, 144, 30, RGB(0, 0, 120))
      DrawingMode(1)
      FrontColor(0, 0, 0)
      DrawingFont(FontID)
      Locate(5, 3)
      DrawText("1 cm")
      Line(5, 21, Round(Rapport + 0.5, 0), 0)
    StopDrawing()
    
    ; Affichage de l'image
    ImageGadget(8, 3, 160, 144, 30, UseImage(0))
    
    Repeat
      Event = WaitWindowEvent()
      
      If Event = #PB_EventGadget
        Select EventGadgetID()
          Case 2
            Actualise()
          Case 4
            Actualise()
          Case 5
            Actualise()
        EndSelect
      EndIf
      
    Until Event = #WM_CLOSE
  EndIf
EndIf
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

le centimètre fait environ 1/2 pouce d'un garçon de 16ans donc ça dois être bon

Sinon avec une règle ça a l'air bon :wink:
killer7
Messages : 18
Inscription : ven. 06/févr./2004 16:24
Contact :

Message par killer7 »

L'invité c'était moi lol.
Chris a écrit : Pour résumer:
Un pixel, c'est un pixel, quelque soit la résolution
Plus la résolution est grande, plus le pixel est petit!
Plus les pixels sont petits, plus il en faudra dans 1 cm

Voilà ce que j'en pense! :lol:

Chris :)
Oui, c'est exactement ce qu'il en ait, et pas autrement.
1 pixel = 1 pixel quel que soit la résolution.
Ensuite l'histoire des cm c'est une affaire de visualisation à l'écran suivant les résolutions (pour la question posée dans le 1er post).

Mais il ne faut surtout pas commettre l'erreur de dire :

"oui, mais attention ton pixel ne sera pas le même en 640x480 qu'en 800x600"

Car c'est bien le même pixel (en 800x600), mais il est affiché en plus petit et bien évidemment il en faudra plus pour remplir un cm à l'écran.

Enfin voilou, je voulais juste tenter d'éclaircir un point qui me paraissait un peu trouble !

Désolé d'avoir déclenché une émeute sur le sujet. :mrgreen:
Pierre
Messages : 244
Inscription : ven. 23/janv./2004 20:29
Localisation : 77 (Région parisienne)

Message par Pierre »

merci Régis pour le code
Image
Répondre