Mais vous aussi avez peut-être l'intention d'écrire un logiciel de dessin.Ce chapitre pour vous expliquer comment faire et ainsi peut-être aussi comprendre comment Denis-Draw est conçu. Si vous voulez faire un logiciel bitmap, c'est très facile. Considérer l'écran comme un rectangle de points distincts. Pour accéder a chacun d'eux vous devez savoir comment la mémoire d'un ordinateur fonctionne. Elle est connectée au micro-processeur à travers un bus de donnée, plusieurs fils, une nappe échange des informations, ces informations sont pilotée par le microprocesseur et stockées dans une mémoire qui est devenue linéaire depuis le mode 32 bits (au préhalable segmenté comme par palier). Une fois la représentation de la mémoire comme un tableau mono-dimentionnelle compris, un nombre (binaire) permet d'écrire une valeur dans cette espace. Pour représenter, l'écran comme une mémoire une opération divise celui-ci en ligne et en colonne. Dans la pratique, une opération toute simple : soit V: l'adresse de la mémoire vidéo; la largeur et la hauteur de l'écran H & L. Pour accéder à chaque pixels de coordonnée P(x,y) le calcul est le suivant V+y*L+x. V étant l'adresse de la mémoire vidéo. Comme dans le jeux des mots-croissés une grille est remplie de case verticale et horizontale. Si la troisième case horizontale et la deuxième case verticale est noir vous pouvez si le jeux comporte 10x10 cases vérifier que le nombre de case en parcourant de la gauche vers la droite et en descendant d'une case comme le retour chariot d'une machine à écrire pour obtenir 10*2+3=23 cases différentes. Ce qui permet de linéariser un tableau dans le mémoire de l'ordinateur. L'utilisation d'un blob : un rectangle de point l'image de Pac-man par exemple, nécessite elle de resérver une partie de la mémoire (un tableau) à cet usage et de le copier dans la mémoire vidéo pour le dessiner. L'équation précédante permet d'afficher un pixel, et le nom de cette fonction avec les paramètres x,y,c (c:la couleur du point) se nomme plot, setpixel... Une fois ceci définie, les autres fonction dépende de celle-ci pour dessiner une ligne, un rectangle, un cercle, une courbe. Ces fonction sont décrite dans la librairie de windows avec le module apellé GDI pour graphic device interface. Par rapport à cette définition ce système étant fenêtré, un paramètre supplémentaire est nécessaire pour identifier celle-ci. Paint ne fonctionne pas différement, si ce n'est la gestion du curseur pour obtenir la position de la souris. Quand elle se déplace, WindowsTM envoie des messages (ces coordonnées) à la fenêtre, ces messages inclus aussi l'état des boutons, en fait un message est envoyé dès lors qu'une informations est modifiée (mouvement de la souris ou clique sur un des boutons). Denis-draw, est un logiciel vectorielle, contrairement à paint qui remplie un tableau de point, Denis-Draw enregistre toute les informations de la souris dans une liste dynamique (elle s'agrandit au fur et à mesure), et quand l'écran est affiché ce n'est pas un tableau comme celle de paint qui est envoyé à l'écran mais une succession de dessin enregistré dans cette liste (ex: appuyer sur la touche espace pour régénérer l'affichage). Les apparences soit trompeuse entre ses deux fonctionnements et de nombreux utilisateurs n'ont pas fait la différence. Et pourtant, l'utilisation bien que similaire est beaucoup plus riche avec un outil nommée draw plutôt que paint subjectivement selon l'usage. Car d'autres outils de retouche d'image sont disponibles avec des traitements beaucoup plus sophistiqués. |