In questo esercizio proveremo a disegnare triangoli multipli, colorati sullo schermo distribuendoli in posizione casuale.

Ci servono le libreria dei comandi per il Turtle e quelle per il random, quindi come prima cosa scriviamo all’inizio:
from turtle import *
from random import *
Creiamo ora un funzione triangolo(lato) che disegna un triangolo il cui lato è specificato dal programmatore (per esempio triangolo(100) disegna un triangolo equilatero di lato 100):
def triangolo(lato):
for _ in range(3):
fd(lato)
lt(120)
nel ciclo for, al posto di una variabile j che conta le ripetizioni, abbiamo messo un trattino basso. In questo modo liberiamo un po’ di spazio in memoria RAM.
Ora modifichiamo la funzione in modo che colori il triangolo utilizzando le istruzioni color, begin_fill e end_fill che servono a stabilire colori e cosa riempire. L’istruzione color(a,b) serve a stabilire il colore del perimetro (a) e quello del riempimento (b). Le altre due istruzioni le possiamo mettere prima e dopo il disegno della figura geometrica da riempire.
def triangolo(lato):
color(“black”,”red”)
begin_fill()
for _ in range(3):
fd(lato)
lt(120)
end_fill()
A questo punto facciamo queste modifiche: introduciamo una lista di colori e sfruttiamo la libreria random per scegliere colori a caso dalla lista. Dalla libreria random prenderemo solo il comando randint che semplifichiamo con ri() come si capisce dalla dicitura from random import randint as ri.
from turtle import *
from random import randint as ri
listaC=[“yellow”,”green”,”blue”,”red”,”brown”,”purple”,”orange”]
def triangolo(lato):
ci=listaC[ri(0,6)]
cp=listaC[ri(0,6)]
color(cp,ci)
begin_fill()
for _ in range(3):
fd(lato)
lt(120)
end_fill()
In sostanza si è creata una lista di colori “listaC” poi il triangolo pesca un colore a caso per il bordo cp=listaC[ri(0,6)] e per l’interno ci=listaC[ri(0,6)] lo applica con color(cp,ci) e poi attiva il riempimento del triangolo e lo disegna.
A questo punto definiamo la funzione vai() che sposta la posizione di una posizione random: viene generata una posizione random (x,y) con x=ri(-300,300)
y=ri(-300,300) poi si alza la penna, ci si sposta e si abbassa la penna pu(), goto(x,y), pd(). N.B. pu e pd sono abbreviazione di penup e pendown.
def vai():
x=ri(-300,300)
y=ri(-300,300)
pu()
goto(x,y)
pd()
Il programma che richiama le funzioni è:
# programma
speed(0)
pensize(4)
for i in range(10):
vai()
triangolo(200)
done()
Di seguito il programma completo.
