Cercle chromatique paramétrable et plus rapide pour NumWorks
Posted: 20 May 2019, 21:41
Petit retour ce soir sur la possibilité de mettre le cercle chromatique dans ta NumWorks.
A la rentrée 2019 en Seconde, le programme de Physique-Chimie fait en effet appel aux scripts Python afin d'illustrer graphiquement divers phénomènes physiques. La NumWorks est à ce jour la seule calculatrice dont le Python offre des possibilités graphiques, et donc la seule calculatrice entièrement conforme au nouveau programme.
Nous avions donc vu un premier script en ce sens dans un article précédent. Script qui avait la particularité très artistique de colorier le cercle de façon concentrique en partant du centre.
A la rentrée 2019 en Seconde, le programme de Physique-Chimie fait en effet appel aux scripts Python afin d'illustrer graphiquement divers phénomènes physiques. La NumWorks est à ce jour la seule calculatrice dont le Python offre des possibilités graphiques, et donc la seule calculatrice entièrement conforme au nouveau programme.
Nous avions donc vu un premier script en ce sens dans un article précédent. Script qui avait la particularité très artistique de colorier le cercle de façon concentrique en partant du centre.
Un inconvénient de cette méthode est qu'elle est peu précise pour allumer une grille de pixels.
Les approximations poussent à jouer la sécurité afin de ne pas laisser de trous, quitte à traiter certains pixels plusieurs fois, ce qui ralentit le tracé.
Aussi, les cercles concentriques étant de plus en plus grands, cela donne visuellement l'impression peu agréable que le tracé ralentit de plus en plus.
Les approximations poussent à jouer la sécurité afin de ne pas laisser de trous, quitte à traiter certains pixels plusieurs fois, ce qui ralentit le tracé.
Aussi, les cercles concentriques étant de plus en plus grands, cela donne visuellement l'impression peu agréable que le tracé ralentit de plus en plus.
Voici donc ce soir un autre script Python dédié au cercle chromatique, qui cette fois-ci colorie le disque ligne par ligne de haut en bas.
Une méthode sans doute moins esthétique en cours de tracer, mais qui permet ici de viser précisément chaque pixel et qui est donc beaucoup plus rapide !
Une méthode sans doute moins esthétique en cours de tracer, mais qui permet ici de viser précisément chaque pixel et qui est donc beaucoup plus rapide !
Aussi, la fonction de ce nouveau script a l'avantage d'offrir le contrôle de nombre de paramètres, afin de se s'adapter au mieux à tes besoins ou ceux de tes propres scripts.
Tu pourras préciser notamment cette fois-ci la position du centre ainsi que le rayon, et même décider d'inverser l'ordre des couleurs.
En interne, le script travaille sur des couleurs en coordonnées non pas RVB (Rouge-Vert-Bleu) mais TSV (Teinte-Saturation-Valeur), possiblement plus connues chez les graphistes et anglophones en tant que HSV (Hue-Saturation-Value) ou HSB (Hue-Saturation-Brightness). Ce système de coordonnées a l'avantage d'être basé sur une approche de la perception des couleurs, ce qui simplifie énormément nombre d'effets optiques.
Tu pourras par exemple demander à la fonction d'augmenter ou de diminuer progressivement la saturation ou la valeur du centre à la périphérique pour des effets que tu peux constater sur la démo ci-contre, de quoi illustrer aussi bien la synthèse additive que soustractive par exemple.
Tu pourras préciser notamment cette fois-ci la position du centre ainsi que le rayon, et même décider d'inverser l'ordre des couleurs.
En interne, le script travaille sur des couleurs en coordonnées non pas RVB (Rouge-Vert-Bleu) mais TSV (Teinte-Saturation-Valeur), possiblement plus connues chez les graphistes et anglophones en tant que HSV (Hue-Saturation-Value) ou HSB (Hue-Saturation-Brightness). Ce système de coordonnées a l'avantage d'être basé sur une approche de la perception des couleurs, ce qui simplifie énormément nombre d'effets optiques.
Tu pourras par exemple demander à la fonction d'augmenter ou de diminuer progressivement la saturation ou la valeur du centre à la périphérique pour des effets que tu peux constater sur la démo ci-contre, de quoi illustrer aussi bien la synthèse additive que soustractive par exemple.
Avertissement pour les codeurs NumWorks dont les scripts manipulent des couleurs.
La version bêta 11.0.0 actuellement en phase de tests change le comportement de la fonction
L'avantage est de permettre la récupération facile des différentes composantes RVB au codeur débutant, exactement comme avec une liste. Un changement une fois de plus à l'heure et en parfaite adéquation avec l'évolution des programmes scolaires du lycée à la rentrée 2019 !
Toutefois, selon comment les scripts déjà existants récupéraient et utilisaient la valeur retour de cette fonction, certains pourront ne plus fonctionner correctement lors d'une prochaine mise à jour NumWorks. Notamment ceux qui en récupéraient les composantes RVB pour y appliquer des transformations, et qui devront donc être corrigés.
Le script de cet article n'est pas concerné par le problème. Il a en effet été écrit de sorte à fonctionner aussi bien avec le nouveau comportement que l'ancien.
La version bêta 11.0.0 actuellement en phase de tests change le comportement de la fonction
kandinsky.color(r,g,b)
, qui ne renvoie plus un nombre mais un tuple.L'avantage est de permettre la récupération facile des différentes composantes RVB au codeur débutant, exactement comme avec une liste. Un changement une fois de plus à l'heure et en parfaite adéquation avec l'évolution des programmes scolaires du lycée à la rentrée 2019 !
Toutefois, selon comment les scripts déjà existants récupéraient et utilisaient la valeur retour de cette fonction, certains pourront ne plus fonctionner correctement lors d'une prochaine mise à jour NumWorks. Notamment ceux qui en récupéraient les composantes RVB pour y appliquer des transformations, et qui devront donc être corrigés.
Le script de cet article n'est pas concerné par le problème. Il a en effet été écrit de sorte à fonctionner aussi bien avec le nouveau comportement que l'ancien.
Téléchargement : archives_voir.php?id=2107931