En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies à des fins statistiques anonymes.
En savoir plus sur la gestion des cookies

Projets Informatique&Sciences du Numérique ISN

Projet « Portraits de phase »

Par FRANCOIS PASSEBON, publié le dimanche 15 juin 2014 23:07 - Mis à jour le dimanche 15 juin 2014 23:46

L’objectif était de proposer un projet original, assez facilement décomposable en un nombre réduit d’étapes, certaines, mais pas toutes, faisant appel à des choses étudiées dans l’année : graphisme, codage des couleurs RVB, qui est celui utilisé sur les écrans d’ordinateurs (synthèse additive de trois couleurs primaires Rouge, Vert, et Bleu).

Les portraits de phase sont utilisés en physique pour l’étude de systèmes dynamiques comme un pendule oscillant autour de sa position d’équilibre par exemple. L’approche est un peu différente ici :

- on commence par se limiter à une portion de plan, centrée sur l’origine par exemple ;
- puis à un point (x,y) de cette portion de plan, on associe un autre point (X,Y) via une fonction ;
- on calcule alors la phase correspondante, qui est un angle, compris entre 0 et 360° ;
Ne pas se laisser impressionner par les termes; on peut comprendre la suite sans savoir ce qu'est la phase.
- l’idée est de représenter cette phase par une couleur sachant que de 0 à 360 °, on balaiera toutes les couleurs du spectre de la lumière blanche (couleurs dites « de l’arc en ciel ») ;
- une image vide est créée dès le départ où chaque point représente un point (x,y) du plan, colorié avec la couleur obtenue !

La synthèse additive des couleurs mise en œuvre sur les écrans repose sur le fait que chaque couleur primaire, Rouge, Vert, Bleu, peut prendre 256 nuances allant de la plus sombre, 0, à la plus intense, 255. Toutes les combinaisons étant possibles, c’est ainsi qu’on obtient les 256x256x256 = 16 millions de couleurs environ sur un écran.

Cette animation illustre le principe, le niveau 100 % correspond à 255 et 0 % à 0 : (déplacer les curseurs !)

Animation disponible sur le site http://www.ostralo.net/ qui en propose de nombreuses en lien avec la physique-chimie.

Un des problèmes à résoudre dans ce projet est l’obtention du code RVB d’une couleur à partir d’un angle compris entre 0 et 360°.

Techniquement (voir schéma ci-dessous), cela se fait en considérant 6 intervalles de 60° sachant que sur chaque intervalle, une seule couleur primaire passe progressivement de 0 à 255 ou l’inverse :

On peut s’amuser à passer du rouge au violet en utilisant ce principe à l’aide de l’animation ci-dessus :
- pour l’angle 0°, on voit que le bleu et le vert sont à 0 alors que le rouge est au maximum ;
- on augmente progressivement le vert sans toucher au reste, et on arrive au jaune, qui correspond à un angle de 60 ° ; ainsi de suite ...

Reste à coder tout ça en langage Python. Puisque le traitement de la couleur se répète pour chaque point, on créé un sous-programme, mais les choses ne marchent pas tout de suite pour autant car se pose un problème de variables dites locales et globales, aïe !!! Et il y a tout le reste, pas que la couleur !

Bref, les élèves butent à chaque instant ou presque, donc ils apprennent des choses, c’est pour ça que les professeurs donnent des projets !

Au final, suivant la fonction utilisée (voir explications plus haut), on obtient de jolis « portraits », dont voici deux spécimens :

Les élèves ont su que leur projet avait abouti lorsqu'ils ont découvert le premier, après une énième exécution de programme pour voir le résultat, qui n'a pas toujours été celui escompté. La patience paie !