Les couleurs
Les couleurs
Objectifs cantonaux : O1.5, O1.6.
Cours complet sur la plateforme Runestone de Cédric Donner : Représentation des couleurs.
Vous avez déjà utilisé setPenColor("red") ou setFillColor("blue") depuis les premières semaines de tortue. Cette semaine, on formalise ce qu’est réellement une couleur pour un ordinateur, et on apprend à en fabriquer soi-même.
Couleurs nommées : rappel
◈ Rappel — Syntaxe
setPenColor("couleur") # couleur du trait dessiné
setFillColor("couleur") # couleur de remplissage (avec startPath()/fillPath())"couleur" est un nom anglais entre guillemets ("red", "blue", "green", "yellow", "orange", "purple"…). Pratique, mais limité à la liste des noms que gturtle connaît.
Fabriquer sa propre couleur avec makeColor
▷ Définition — Couleur RVB
Une couleur affichée à l’écran est fabriquée en mélangeant trois couleurs de base : Rouge, Vert, Bleu (RVB, ou RGB en anglais). Chaque composante est une intensité comprise entre 0 (absente) et 255 (maximale). La fonction makeColor(rouge, vert, bleu) du module gturtle permet de fabriquer n’importe quelle couleur à partir de ce triplet de valeurs.
from gturtle import *
hideTurtle()
couleur = makeColor(122, 10, 50)
setPenColor(couleur)
dot(60)! Cas particulier : les gris
Si les trois composantes R, V, B sont égales, la couleur obtenue est une nuance de gris : makeColor(0, 0, 0) donne le noir, makeColor(255, 255, 255) donne le blanc, et toute valeur intermédiaire égale sur les trois composantes donne un gris plus ou moins clair.
Les couleurs primaires et leurs mélanges
from gturtle import *
def point_couleur(triplet):
# dessine un point de la couleur donnée par le triplet (R, V, B),
# puis déplace la tortue pour préparer le point suivant
diametre = 60
couleur = makeColor(triplet)
setPenColor(couleur)
dot(diametre)
forward(diametre)
hideTurtle()
right(90)
# tracer d'abord une bande grise pour faire ressortir le point blanc
diametre = 60
setPenColor(220, 220, 220)
setPenWidth(diametre)
forward(7 * diametre)
back(7 * diametre)
penUp()
rouge = 255, 0, 0
vert = 0, 255, 0
bleu = 0, 0, 255
jaune = 255, 255, 0
magenta = 255, 0, 255
cyan = 0, 255, 255
blanc = 255, 255, 255
noir = 0, 0, 0
point_couleur(rouge)
point_couleur(vert)
point_couleur(bleu)
point_couleur(jaune)
point_couleur(magenta)
point_couleur(cyan)
point_couleur(blanc)
point_couleur(noir)En synthèse additive (celle des écrans), le mélange de rouge et de vert à pleine intensité donne du jaune, rouge + bleu donne du magenta, vert + bleu donne du cyan, et les trois ensembles donnent du blanc.
Les mains à la pâte
- À l’aide d’une variable incrémentée dans une boucle, dessinez une palette de gris allant progressivement du noir au blanc.
- Dessinez une palette de nuances des couleurs primaires : en fixant une composante au maximum (255) et en augmentant progressivement les deux autres à égalité, on éclaircit une couleur sans la dénaturer.
Travail sur le projet
Le reste de la période est consacré au travail autonome sur le projet en cours — l’occasion d’utiliser makeColor pour affiner les couleurs de votre dessin plutôt que de vous limiter aux noms de couleurs standards.