Article épinglé

mardi 21 décembre 2021

RetD SNT Turtle

 Dessine moi une étoile



L'objectif est de dessiner l'étoile de droite, avec le moins de lignes de code possible. Pour simplifier j'ai un peu agrandi l'étoile du haut pour que les branches tombent sur ma grille.

Etape 1 - L'étoile du bas

from turtle import *
penup()
setpos(10,10)
pendown()
setpos(40,0)
setpos(10,-10)
setpos(0,-40)
setpos(-10,-10)
setpos(-40,0)
setpos(-10,10)
setpos(0,40)
setpos(10,10)

Etape 2 - L'étoile du haut

Je vous laisse voir.

Etape 3 - Facteur d'échelle

Comment modifier votre script afin de faire varier la taille de 0 à 1 par exemple.
Pour vous aider:

from turtle import *
from random import *

setpos(0,100)
color('red')
c=random()
print(c)

setpos(0*c,100*c)

Etape 4 - Le déplacement du centre

Imaginons un centre d'étoile différent. Prenez 100,50 par exemple.
Pour vous aider:

from turtle import *
from random import *
x=0
y=50
setpos(x,y)

penup()
deplacement=100
setpos(deplacement, 0)
color('red')
c=random()
print(c)

pendown()
setpos(deplacement+x*c,y*c)

Etape 5 - Mille étoiles

L'objectif est de comprendre le script évidemment ;) Je me suis inspiré des sapins

from turtle import *
from random import *
# fenetre
speed(10)# pour aller plus vite
setup(800,700)# pour paramétrer la fenêtre

for i in range(1000):
    
    x=randint(-750,750)
    y=randint(-500,500)

    c=random()/2#taille entre 0 et 0,5 plus jolie

    #etoile 1
    penup()
    setpos(x+10*c,y+10*c)
    pendown()
    setpos(x+40*c,y+0*c)
    setpos(x+10*c,y+-10*c)
    setpos(x+0*c,y+-40*c)
    setpos(x+-10*c,y+-10*c)
    setpos(x+-40*c,y+0*c)
    setpos(x+-10*c,y+10*c)
    setpos(x+0*c,y+40*c)
    setpos(x+10*c,y+10*c)
    #etoile 2
    penup()
    setpos(x+15*c,y+0*c)
    pendown()
    setpos(x+30*c,y+30*c)
    setpos(x+0*c,y+15*c)
    setpos(x+-30*c,y+30*c)
    setpos(x+-15*c,y+0*c)
    setpos(x+-30*c,y+-30*c)
    setpos(x+0*c,y+-15*c)
    setpos(x+30*c,y+-30*c)
    setpos(x+15*c,y+0*c)



Aucun commentaire:

Enregistrer un commentaire

Tout commentaire nous engage ;)