Dessiner sur une toile
CoddyRun sait aussi dessiner ! On dessine sur une toile : une feuille rectangulaire sur laquelle on place des formes, puis on l'affiche dans la console.
Créer et afficher une toile
t est une toile
dimension(t, 300, 200)
remplir(t, #E8F4FD)
cercle(t, 150, 100, 60, #1D9BF0)
affiche t
dimension(toile, largeur, hauteur) fixe la taille en pixels ;remplir(toile, couleur) colore le fond ;affiche t montre la toile dans la console.
Les couleurs s'écrivent en hexadécimal, sans guillemets : #FF0000 est rouge, #00BA7C vert, #1D9BF0 bleu.
Les coordonnées
Chaque point de la toile a deux coordonnées : x (horizontal) et y (vertical). Le point (0, 0) est le coin en haut à gauche, et y augmente vers le bas.
t est une toile
dimension(t, 300, 200)
remplir(t, #FFFFFF)
rectangle(t, 20, 20, 100, 60, #FF7A00) // coin (20, 20), 100 x 60
cercle(t, 220, 60, 40, #7C4DFF) // centre (220, 60), rayon 40
ligne(t, 20, 150, 280, 150, #0F1419, 3) // de (20, 150) à (280, 150), épaisseur 3
label(t, 20, 185, 'Ma première toile', #536471, 16)
affiche t
rectangle se place par son coin en haut à gauche, puis largeur et hauteur ;cercle se place par son centre, puis son rayon ;label écrit un texte ; son y est la ligne de base du texte (le bas des lettres).
Question : Sur une toile de 300 x 200, où se trouve le point (290, 190) ? — En bas à droite. x = 290 est presque à droite, et comme y augmente vers le bas, y = 190 est presque en bas.
Dessiner avec une boucle
C'est là que la programmation devient magique : une boucle peut dessiner des dizaines de formes.
t est une toile
dimension(t, 400, 120)
remplir(t, #0D1117)
pour i de 0 à 7
cercle(t, 30 + i * 48, 60, 20, tls(i * 45, 80, 55))
fin pour
affiche t
À chaque tour, le cercle se décale de 48 pixels vers la droite (30 + i * 48), et sa couleur change : tls(teinte, saturation, luminosité) fabrique une couleur à partir d'une teinte entre 0 et 360.
rgb(255, 120, 0) fabrique aussi une couleur, à partir du rouge, du vert et du bleu (de 0 à 255 chacun).
Une petite maison
En combinant les formes, on fait de vrais dessins :
t est une toile
dimension(t, 300, 260)
remplir(t, #BDE3FF)
rectangle(t, 0, 210, 300, 50, #6CC24A) // l'herbe
rectangle(t, 80, 120, 140, 100, #F4E1C1) // les murs
triangle(t, 70, 120, 230, 120, 150, 50, #C0392B) // le toit
rectangle(t, 135, 165, 30, 55, #8E5A2B) // la porte
rectangle(t, 95, 140, 30, 25, #FFFFFF) // une fenêtre
cercle(t, 255, 45, 25, #FFD43B) // le soleil
affiche t
L'ordre compte : chaque forme est dessinée par-dessus les précédentes. C'est pour ça qu'on dessine les murs avant la porte.
En résumé
t est une toile, dimension(t, l, h), puis affiche t.(0, 0) est en haut à gauche, y augmente vers le bas.rectangle, cercle, ligne, triangle, label : les formes de base.- Couleurs
#RRGGBB sans guillemets, ou fabriquées avec rgb et tls. - Une boucle peut dessiner beaucoup de formes ; l'ordre des formes compte.