Un paysage où un monument de la culture japonaise se mélange avec un fond naturel est magnifique. Et bien que le Japon soit le pays du soleil, levant nous allons le mettre en valeur avec, cette fois-ci, la lune, à travers des montagnes et des torii. Ces derniers symbolisent un portail entre l’enceinte sacrée et l’environnement profane. C’est pour cette raison qu’il y en a à l’entrée de certains sanctuaires.
Sommaire
Organisation du script
Notre script sera expliqué par étape, de l’arrière plan au premier. La fonction goto sera beaucoup utilisée afin de faire des tracés contrôlés ainsi que pensize() pour la largeur du tracé du stylo, color() pour choisir la couleur du crayon, circle() pour faire un cercle et for i in range pour faire des boucles.
L’arrière-plan
from turtle import* pensize (42) color("#FFFFFF") a = -40 col = ["#FFFFFF","#9BF7F7","#41F9FF","#00CDFF","#008FFF","#0059FF","#003AFF", "#4D00FF","#33079A", "#000000"] nb_col = len(col) color("#FFFFFF") goto(0, 50) circle(40) a = 0 for i in range (0,10,1): goto(0, 40-a) color(col[i%nb_col]) circle(40+a) a = a +30 goto(0, 40-a) circle(40+a) a = a +30 goto(0, 40-a) circle(40+a) a = a +40
Ici, nous montrons que notre script est importé de Turtle, ce module nous permettant de contrôler un crayon pour tracer diverses formes géométriques.
Le fond de notre code n’est pas centré mais c’est fait exprès. Nous avons donc mis la taille du crayon à 42 avec la fonction : pensize (42), ensuite a = -40 nous a servis à déplacer le centre du cercle de base, soit, dans notre cas de le décaler vers la haut. Puis nous avons listé les différentes couleurs utilisées dans tous ces cercles avec col = [ ]. Le goto(0, 50) nous emmènera ensuite aux coordonnées données (donc (0, 50)) puis tracera des cercles de différentes tailles et de différentes couleurs grâce à la fonction cercle circle(40) et à la boucle for i in range (0,10,1):.
Les premières montagnes
color("#42392C") goto(0, -80) goto(100, 90) goto(150,80) goto(230,150) goto(270,250) goto(300,150) goto(500,20) goto(580,30) goto(630,10) goto(640,-40) goto(0,-80) goto(0, -40) goto(100,50) goto(120,40) goto(200,100) goto(320,250) goto(500,30) goto(580,-10) goto(630,20) goto(640,-80) goto(0,-70) goto(0, -40) goto(120,40) goto(200,80) goto(320,230) goto(500,00) goto(580,00) goto(630,000) goto(640,-60) goto(0,-50) goto(0, -40) goto(120,33) goto(200,60) goto(320,210) goto(500,00) goto(580,00) goto(630,000) goto(640,-40) goto(0,-20) goto(0, -40) goto(120,20) goto(200,50) goto(320,190) goto(500,00) goto(580,00) goto(630,000) goto(640,-30) goto(0,-10) goto(0, -40) goto(120,00) goto(200,20) goto(320,170) goto(500,00) goto(580,00) goto(630,000) goto(640,-10) goto(0,-00) goto(0, -40) goto(120,00) goto(200,10) goto(320,160) goto(580,00) goto(630,000) goto(640,-10) goto(0,-00) goto(320,70) goto(500,50) goto(320,60) goto(320,40) goto(320,50) goto(320,30) goto(0,-10) goto(-200,50) goto(-300,10) goto(-430,160) goto(-500,15) goto(-600,250) goto(-600,-10)
Nous comprenons ici que les goto sont et seront à l’honneur de ce script ! Ils sont simples à utiliser et donc à comprendre. La couleur des premières montagnes, elle, est encore une fois définie par color(« #42392C »).
Voici le résultat de tous ces goto ! Nous avons un début de montagne avec quelques imperfections mais pas d’inquiétudes ! Ce script fonctionne par plan donc comme un pochoir. Ici, les goto ont donc servis à diriger le stylo d’un point à un autre jusqu’à ce que nous ayons ce résultat
Encore des montagnes
color("#6F6556") goto(0, 0) goto(80,40) goto(120,00) goto(200,10) goto(430,200) goto(630,0) goto(0,-00) goto(0, 0) goto(200,0) goto(430,180) goto(630,0) goto(0, 0) goto(200,0) goto(430,160) goto(630,0) goto(0, 0) goto(200,0) goto(430,150) goto(630,0) goto(0, 0) goto(200,0) goto(400,150) goto(630,0) goto(0, 0) goto(200,0) goto(400,140) goto(630,0) goto(0, 0) goto(200,0) goto(400,130) goto(630,0) goto(0, 0) goto(200,0) goto(400,120) goto(630,0) goto(0, 0) goto(200,0) goto(400,110) goto(630,0) goto(0, 0) goto(200,0) goto(400,100) goto(630,0) goto(0, 0) goto(200,0) goto(400,90) goto(630,0) goto(0, 0) goto(200,0) goto(400,80) goto(630,0) goto(0, 0) goto(200,0) goto(400,70) goto(630,0) goto(0, 0) goto(200,0) goto(400,60) goto(630,0) goto(0, 0) goto(200,0) goto(400,60) goto(630,0) goto(0, 0) goto(200,0) goto(400,50) goto(630,0) goto(0, 0) goto(200,0) goto(400,40) goto(630,0) goto(0, 0) goto(200,0) goto(400,40) goto(630,0) goto(0, 0) goto(200,0) goto(400,30) goto(630,0) goto(0, 0) goto(200,0) goto(400,20) goto(630,0) goto(0, 0) goto(200,0) goto(400,10) goto(630,0) goto(0,0) goto(0,-10) goto(-200,30) goto(-300,00) goto(-400,150) goto(-500,5) goto(-600,200) goto(-600,-10) goto(0,0)
Ces montagnes sont faites de la même manière que les premières : le changement de couleur avec color(« #6F6556 ») et les goto ! Voyons maintenant le résultat en image…
Et voilà nos montagnes finies ! Mais il reste encore quelques étapes pour donner un sens à notre titre.
Le sol bleu
up() goto(0,-400) down() col = ["#000000","#33079A","#4D00FF", "#003AFF", "#0059FF","#008FFF", "#00CDFF", "#41F9FF","#9BF7F7", "#FFFFFF","#9BF7F7","#41F9FF","#00CDFF","#008FFF","#0059FF","#003AFF","#4D00FF","#33079A","#000000"] nb_col = len(col) recup = 0 k = -50 for i in range (0,50): color(col[i%nb_col]) for i in range (0,3): k += 40 goto(1000-k,-35) goto(1300-k,-500)
Comme pour l’arrière-plan, les couleurs sont définies grâce à col = [ ].
Avec l’image, nous pouvons plus facilement comprendre la présence de la boucle for i in range (0,50) qui nous a aidé à répéter tous les traits positionnés en diagonale pour nous éviter de les faire un à un avec des goto par exemple !
Les torii
pensize(42) up() goto(160,-220) down() color("#FF7000") goto(160,100) goto(-160,100) goto(-160,-220) goto(-160,100) goto(-220,100) goto(220,100) goto(160,100) goto(160,160) goto(160,100) goto(-160,100) goto(-160,160) goto(-220,160) goto(220,160) pensize(25) up() goto(80,-150) down() color("#E76E00") goto(80,20) goto(-80,20) goto(-80,-150) goto(-80,20) goto(-120,20) goto(120,20) goto(80,20) goto(80,60) goto(80,20) goto(-80,20) goto(-80,60) goto(-120,60) goto(120,60) pensize(12) up() goto(40,-120) down() color("#CB6100") goto(40,-30) goto(-40,-30) goto(-40,-120) goto(-40,-30) goto(-60,-30) goto(60,-30) goto(40,-30) goto(40,-10) goto(40,-30) goto(-40,-30) goto(-40,-10) goto(-60,-10) goto(60,-10) pensize(6) up() goto(20,-100) down() color("#A95100") goto(20,-60) goto(-20,-60) goto(-20,-100) goto(-20,-60) goto(-30,-60) goto(30,-60) goto(20,-60) goto(20,-50) goto(20,-60) goto(-20,-60) goto(-20,-50) goto(-30,-50) goto(30,-50)
Voici le code de nos torii. A chaque nouveau pensize( ), il y en a un nouveau ! Nous avons d’abord le placement du crayon avec up( ), goto( ) et down( ) dans cet ordre là. Cela permet de se déplacer en décidant quand nous voulons écrire.
Cette fois-ci, l’image est sans le fond pour mieux observer le choix de couleur ainsi que les tailles décroissantes.
Le résultat final
Et enfin, notre résultat ! Nous avons également rajouté deux ligne, une verte et une marron pour montrer le début des montagnes mais ces lignes servent aussi à cacher la délimitation qu’il y avait pour les traits droits en diagonale.