explications

Comment écrirait-on 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érez 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ées par le microprocesseur et stockées dans une mémoire qui est devenue linéaire depuis le mode 32 bits, au préalable segmenté comme par palier.

Une fois la représentation de la mémoire comme un tableau unidimensionnel 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 lignes et colonnes. 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. Comme dans le jeux des mots-croisés une grille est remplie de verticales et horizontales. Si la troisième case horizontale deuxième verticale est noire, vous pouvez, si le jeu comporte 10x10 cases, vérifier le nombre de cases, 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. Ceci permet de linéariser un tableau dans le mémoire de l'ordinateur.

L'équation précédente 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éfini, les autres fonctions dépendent de celle-ci pour dessiner une ligne, un rectangle, un cercle, une courbe. Ces fonction sont décrites dans la librairie de windows avec le module appelé 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éremment, 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 information est modifiée (mouvement de la souris ou clique sur un des boutons).

Denis-draw est un logiciel vectoriel, contrairement à Paint qui rempli un tableau de points. 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 Paint qui est envoyé à l'écran mais une succession de dessins enregistrés dans cette liste (ex: appuyer sur la touche espace pour régénérer l'affichage).

Les apparences sont trompeuses entre ses deux fonctionnements et de nombreux utilisateurs n'ont pas fait la différence. D'autres outils de retouche d'image sont disponibles avec des traitements beaucoup plus sophistiqués, l'utilisation bien que similaire est beaucoup plus riche avec un outil nommée draw plutôt que paint, subjectivement selon l'usage.

Dessiner des éléments