Graphisme sur écran

Leçons de niveau 14
Une page de Wikiversité, la communauté pédagogique libre.


Département
Création 2D
 
Interwikis

Sur les autres projets Wikimedia :


Comment Tracer des Courbes dans une fenêtre sur l'ecran

.Exemple_echantillonnage_de_deux_signaux_1.png

. Probleme : On desire tracer sur le même graphe une ou plusieurs courbes Y1(X), Y2(X), etc., chaque courbe Yi(X) possédant nbPoints de coordonnees (X,Yi)

Principe : on reserve dynamiquement un tableau de nombres reels, à 2 dimensions :

1ere ligne : les valeurs des abscisses X des points

2eme ligne : les valeurs des ordonnées Y1 de la courbe Y1(X)

3eme ligne : les valeurs des ordonnées Y2 de la courbe Y2(X)


4eme ligne : les valeurs des ordonnées Y3 de la courbe Y3(X)

etc ...

Chaque ligne contient ainsi nbPoints nombres reels (selon les problemes : 100 < nbPoints < 10 000). Comprenez pourquoi nombre de lignes = 1 + nombre de courbes

On a vu précédemment que, pour un tableau à 2 dimensions, par exemple (L) lignes et (C) colonnes, l'ordinateur utilise (L*C + L + 1) cases-mémoires dont (L+1) sont des pointeurs. Bien mémoriser ce schéma :

.MatriceDessin.JPG


On reserve aussi dynamiquement un tableau de caractères a 2 dimensions :

1ere ligne : la legende de l'axe des abscisses, par exemple : "temps t en secondes"

2eme ligne : la legende de la première courbe, par exemple : "tension 400.cos(wt) en Volts"

3eme ligne : la legende de la deuxième courbe, par exemple : "tension 400.cos(wt - 2.pi/3) en Volts"

4eme ligne : la legende de la troisième courbe, par exemple : "tension 400.cos(wt + 2.pi/3) en Volts"

etc.


Pour dessiner les courbes, on appelle la fonction Trace1 fournie par les enseignants (voir documents ci-joints)

Attention : Télécharger le fichier TracerCourbes.zip dans Z:

Décompresser le fichier zip dans Z: ( et non pas dans X: ) clic droit, puis 7-zip, puis Extraire_ici


1) Exécuter le programme du fichier Trace1.c (en ne modifiant pas ce fichier) avec un nombre de points valant 5000, puis 9, puis 5, puis 2 : constatez-vous des différences selon le nombre de points ?

2) Modifier le fichier Trace1.c comme indiqué dans le fichier fourni et tester l'exécution avec différents nombres de points.

3) Vérifier que vous obtenez des courbes semblables à celles du fichier Spirales_Info_1A_Seance11.

Enregistrer vos source.C sur DOKEOS dans l'espace "Documents" de votre groupe.


Explications complémentaires :

L'échantillonnage est correct si on prends plus de 100 points pour échantillonner une seule période de sinusoide; mais si on prends moins de 20 points, la période d'échantillonnage Te est trop grande, donc Fe = 1/Te est trop faible, donc le signal est très déformé : c’est ce que montre le logiciel fourni par les enseignants : voir les différences de formes de courbes que vous obtenez a l'exécution selon le nombre de points choisis.

Autre exemple ci-dessous : la première courbe a une fréquence d'échantillonnage à peine suffisante, et la seconde a une fréquence d'échantillonnage beaucoup trop faible (seulement 3 échantillons pour deux périodes !)

Echantillonnage_sinus.JPG

De plus le théorème de Schannon indique que la fréquence d'échantillonnage Fe doit être supérieure au double de la fréquence Fs la plus élevée du signal que l’on veut numériser : Fe > 2*Fs.

La période d'échantillonnage Te = 1/Fe doit donc être faible, ce qui nécessite un grand nombre de points d'échantillonnage afin de ne pas trop dégrader la qualité du signal : c’est le principe de base de la conversion d'un signal analogique en fichier numérique.

Des milliers de personnes ont testé la fréquence maximale que leur oreille peut capter : elle est de 15 000 Hz chez certaines, et de 22 000 Hz chez les meilleurs mélomanes. C'est pourquoi les créateurs de CD échantillonnent les sons a 44 100 Hz ( qui est > 2 × 22000 pour respecter le théorème de Schannon).

Mais les fichiers au format CD sont très volumineux : les informaticiens ont donc cherché des moyens permettant de réduire la taille des fichiers en minimisant la perte de qualité musicale.

Le MPEG (Moving Picture Experts Group, qui est un groupe de travail du comité technique mixte JTC 1 de l'ISO et de la CEI) a ainsi créé la norme MPEG-1/2 Audio Layer 3, plus connue sous son abréviation commerciale MP3, qui permet de stocker dans une mémoire donnée 7 a 20 fois plus de musique que si on utilisait le format CD (mais la qualité musicale MP3 est légèrement inférieure a la qualité CD).

La réduction de taille facilite le téléchargement et le stockage de données musicales sur un support numérique (lecteur MP3, disque dur, clé USB, etc.), mais pose des problèmes de piratage et de droits d’auteurs !

Le groupe de travail MPEG a également créé les normes de compression pour la vidéo : MPEG2, MPEG4 et leurs dérivées : elles sont utilisées pour les DVD, la TV numérique, les Camescopes, etc ...

Comprenons comment s'affichent courbes, images, photos et vidéos sur les écrans :


Chaque couleur est codée sur 3 octets = 24 bits, ce qui permet de coder :

224 = 16 777 216 = plus de 16 millions de couleurs possibles !

Chaque octet varie de 0 a 255(base 10), donc 0 a FF(base 16) , donc 0000 0000 à 1111 1111(base 2), soit 256 valeurs par octet

octet R = quantité de Rouge octet G = quantité de Vert octet B = quantité de Bleu

Pourquoi G signifie Vert ?

Exemples :

(R,G,B) = (255, 255, 255) donne le blanc

(R,G,B) = (x, x, x) donne 256 nuances de gris (selon la valeur de x)

(R,G,B) = (0, 0, 0) donne le noir

(R,G,B) = (255, 0, 0) donne rouge clair

(R,G,B) = (127, 0, 0) donne rouge moyen

(R,G,B) = (20, 0, 0) donne rouge sombre

(R,G,B) = (255, 0, 255) donne violet clair (melange de rouge et de bleu)

(R,G,B) = (20, 0, 20) donne violet sombre (melange de rouge et de bleu)

Donc la plus belle image de la plus belle personne que vous pouvez voir sur un ecran n'est rien d’autre qu'un ensemble de bits !

C'est presque pareil dans votre œil : la retine constitue un ecran courbe, et votre cerveau ne voit que l'image située sur votre ecran_retine.

D'où ce magnifique compliment : " Tu as les plus beaux bits que j’ai jamais vus ! ! ! " .

point lumineux = élément d'image = picture element = pictel = pixel

Sachant que chaque pixel a sa propre couleur codée sur 24 bits, combien de bits contient un fichier Full HD (Haute Définition) représentant une seule image de (1920x1080) pixels ?

Combien de bits pour une vidéo Full HD de 1h30 ayant 25 images par seconde ?

On comprend donc l’intérêt des algorithmes de compression de fichiers : JPEG, MPEG2, MPEG4, DIVX, etc. qui permettent de réduire leur taille (hélas au détriment de la qualité de l'image !) .

Exemple de question que doit se poser un eleve-ingenieur :

Pourquoi Full HD = 1920x1080 (au lieu des nombres plus simples : 2000x1000) ?

Car 1080 est un multiple de 9 (ce qui n’est pas le cas de 1000),

ce qui permet de visualiser les films au format (4/3)2 = 16/9,

et d'obtenir ainsi le nombre entier : 1080 × 16/9 = 1920 :

L'écran est donc une matrice de 1080 lignes ayant chacune 1920 pixels, soit un total de 2 073 600 pixels pour la norme Full HD.

Mais alors pourquoi existe-t-il des appareils photos et videos de 20 Megapixels (soit 10 fois plus que la norme Full HD) ?

Pour conserver la resolution Full HD de 2 073 600 pixels lorsqu'on agrandit une PARTIE de l'image !

et aussi pour imprimer des grands posters d'excellente qualité . . .

Remarque : on ajoute parfois un quatrième octet T qui indique le degré de transparence de l'image. Donc (R, G, B, T) = 32 bits : on peut ainsi faire des fondus enchainés, etc. . Attention : quelques logiciels codent les couleurs (R,G,B,T) avec des nombres reels (r,g,b,t) compris entre 0 et 1 tels que :

r = R/255 g = G/255 b = B/255 t = T/255

Exemple : B = 51 <==> b = 0.2

Pour représenter des volumes et des surfaces en 3D, on utilise souvent les facettes polygonales (triangles ou quadrilatères), les polyèdres (tétraèdres ou hexaèdre), puis des lissages (algorithmes de Phong, de Gouraud, ...), des ombres (qui renforcent l'effet de profondeur) : voir les nombreuses applications en CAO, DAO, films, réalité virtuelle, jeux vidéos, etc ...

Remarquer l'effet 3D rendu par les ombres, et le lissage déjà effectué sur une des épaules du personnage ci-dessous (on utilise ici seulement 256 niveaux de gris au lieu de 16,7 millions de couleurs) :

Polygon_face.jpg


Vous pouvez faire pivoter un objet avec la souris (notez les reflets et la transparence du couvercle de la théière) : http://mrl.nyu.edu/~perlin/experiments/teapot/

Le logiciel Blender est une suite logicielle libre et gratuite d'animation, modélisation et rendu 3D.

Il dispose de fonctions avancées de modélisation, sculpture 3D, dépliage UV, texturage, gréage (rigging), armaturage, animation, rendu, édition non linéaire, compositions, création nodale de matériaux, création d'application 3D interactives, ainsi que diverses simulations physiques telles que les particules, corps rigides, corps souples, fluides, etc.

Disponible dans de nombreuses langues, Blender fonctionne également sur plusieurs plates-formes telles que Microsoft Windows, Mac OS X, GNU/Linux, IRIX, Solaris, FreeBSD, SkyOS, MorphOS et Pocket PC.

Il est écrit avec plus de cinq cent mille lignes d'instructions dont 70% de lignes en C, et 30% de lignes en C++.

Des compléments et d'autres logiciels permettent de créer la VRAIE 3D stéréoscopique utilisée en CAO_DAO, ainsi que dans les films en relief 3D (exemple : film "Avatar" sorti en décembre 2009 avec un "petit" budget de 500 millions de dollars ! ) : ces créations nécessitent l’utilisation de lunettes ou/et d'écrans spéciaux pour percevoir le relief.

Le relief en VRAIE 3D se répand de plus en plus dans les domaines de l’industrie, de la télévision, du cinéma, de la vidéo, des jeux, etc.

Pour créer vous-même fenêtres et dessins, étudiez le fichier Fenetre1A

Pour votre culture d'ingénieur, complétez les informations précédentes en consultant Internet (Wikipédia, etc ...) avec les mots clés 3D, CAO, DAO, MP3, MPEG, Schannon, DVD, CD, etc..


.