Ciao a tutti,
oggi con Python andiamo nello spazio, imparando a modellare: la luna, il sole e le stelle.
Prepariamoci a giocare come si potrebbe fare in un asilo, ma con un po' di tecnologia. Vi ricordo che non sono una professionista, i programmi mostrati sono semplici perché sto imparando. Sono convinta che se una persona è in grado di spiegare una cosa vuol dire che l'ha capita.
Ricordo inoltre che questa lezione è la base di altri progetti che spero di spiegare in futuro, nel caso sia troppo semplice, vi chiedo di aspettare una settimana e cercherò di preparare la prossima lezione.
Apro subito il programma Python che ci permetterà di vedere il sole.
All'inizio come al solito importo il modulo turtle e definisco con shape("turtle") la forma del mio cursore. Affido la velocità di realizzazione del mio disegno con speed(1). Sollevo la mia penna con cui disegno con il comando penup() e riposiziono in posizione centrale con il comando setposition(-50,-50). Questo ultimo comando setposition è così definito:
setposition(x,y)⇨ definirà un riposizionamento della tartaruga nella posizione delle ascisse (x) e ordinate (y) da me definita. Riabbasso la penna con pendown().
Definisco ora la funzione sole che sarà caratterizzata da 3 variabili:
✅ passo: sarà il raggio del circonferenza che rappresenterà il centro del sole;
✅ num: sarà una variabile che aiuterà a definire i raggi solari;
✅ lungr: sarà una variabile che definirà la lunghezza dei raggi solari.
Definisco poi il colore color("gold") del mio tratto di disegno e lo spessore del mio tratto di disegno con width(5). Inzio a disegnare il cerchio con il comando circle(passo) e lo coloro internamente con begin_fill() e end_fill(). Questi comandi disegneranno il cerchio e poi lo coloreranno internamente, ora devo riposizionare il cursore al centro del sole per trovarmi nella posizione più comoda per disegnare i raggi. Sollevo la penna dal foglio la ruoto di 90° e la posiziono con forward(passo) al centro del sole.
Diamo origine ad un ciclo for che farà quanto segue:
🔶 si procederà avanti di forward(passo) in modo di arrivare sulla superficie solare;
🔶 si appoggerà la penna e da questo momento si potrà disegnare;
🔶 si sceglierà il colore da usare come orange;
🔶 si traccerà il raggio andando avanti di forward(passo) e si tornerà sulla superficie solare con backward(passo);
🔶 si solleverà la penna con penup();
🔶 si tornerà al centro del sole con backward(passo);
🔶 si ruoterà verso destra di un angolo pari a (360/num);
Le operazioni verranno ripetute per un numero di volte pari a num.
Ora definisco i parametri della funzione sole che avevamo detto dipendere da: passo, num, lungr. Definisco sole come: sole(100,20,50). Il raggio del mio cerchio sarà (passo) pari a 100 pixel, il numero di iterazioni del ciclo for sarà 20 (num) e la lunghezza dei raggi (lungr) sarà di 50 pixel.
Dopo questa ultima operazione devo togliere la tartaruga con hideturtle()
Per maggiore chiarezza vi mostro il video del sole:
Ora ci aspetta la luna. Ora vogliamo la luna.
La luna che voglio disegnare sarà uno spicchio di luna. Per fare questo disegno dobbiamo pensare al fatto che vediamo la luna come uno spicchio, una parte di essa perché un altro corpo celeste ne copre una parte alla nostra visuale. Mi sono ispirata a questo processo naturale per scriver il programma: sarà quindi sufficiente disegnare un cerchio giallo e sovrapporne uno colorato di bianco e la nostra luna verrà a crearsi.
Per la prima parte del programma svolgiamo operazioni analoghe a quelle svolte per creare il sole. All'inizio come al solito importo il modulo turtle e definisco con shape("turtle") la forma del mio cursore. Affido la velocità di realizzazione del mio disegno con speed(1). Sollevo la mia penna con cui disegno con il comando penup() e riposiziono in posizione centrale con il comando setposition(100,200). Riabbasso la penna con pendown().
Definisco la funzione Cerchio dipendente dai parametri Schritte cioè passo in italiano e farbe cioè colore:
⇰ Nella funzione dico con il comando color(farbe) che il colore sarà quello affidato al parametro farbe, definirò poi dopo il colore in modo da poter disegnare più di un cerchio e usare diversi colori.
⇰ Iniziamo a colorare internamente il cerchio con begin_fill() e end_fill().
⇰ Disegniamo il cerchio di raggio lungo Schritte con il comando circle(Schritte).
Effettuo una rotazione verso destra di 180° con right(180). Definisco il primo cerchio: Cerchio(150,"gold"), questo cerchio ha raggio pari a 150 pixel e avrà colore gold, cioè dorato. Alzo la penna con pendown() e poi mi sposto indietro di 100 pixel con backward(100) e poi ricomincio a disegnare posando la penna penup(). Definisco il secondo cerchio: Cerchio(150,"white"), questo cerchio ha raggio pari a 150 pixel e avrà colore white, cioè bianco.
Dopo di questo devo solo nascondere la tartaruga con:hideturtle().
Per maggiore chiarezza vi mostro il video della luna:
Ora è tempo di diventare una stella!
Studiamo ora come diventare una stella :D, per meglio dire come disegnare una stella! Dopo aver disegnato una stella la nostra megalomania, ci porterà in futuro a poter disegnare questo:
Ok lo ammetto vi volevo fare ingolosire!
Iniziamo con una singola stella che può essere disegnata come segue:
Iniziamo importando il modulo turtle e poi random. Grazia al modulo random sarò poi in grado di far assumere ogni volta alla stella un colore random. In altre parole quando lancerò la simulazione ogni volta la stella sarà di un colore diverso. Definisco poi la funzione stella che dipende da due variabili:
⇉ punta: Il numero di punte delle stella;
⇉ lato: la lunghezza di ogni lato della stella stessa.
Definisco i tre colori: rosso, verde e blu come random. In questo modo avremo stelle di ogni colore, nella simulazione ho fatto un video con una stella viola, ma poteva venire di ogni colore possibile. Scrivo poi il comando begin_fill() per iniziare a colorare.
Inizio un ciclo for:
ϟ procedo in avanti della lunghezza lato con forward(lato);
ϟ giro verso destra di un angolo definito con 2360/punta con right(2360/punta);
ϟ proseguo in avanti della lunghezza lato con forward(lato);
ϟ giro verso sinistra di un angolo definito con 360/punta con leftt(360/punta);
ϟ finisco con il colorare all'interno ciò che ho disegnato con end_fill()
Ripeto l'operazione tante volte quante pari al numero definito con la variabilepunta. Noi abbiamo che stella dipende
dai parametri punta e lato. Definiamo poi stella come: stella(5,200): stella avrà un valore di punta pari a 5 e lato pari a 200. Il ciclo verrà quindi, nel caso specifico, ripetuto 5 volte e si creerà una stella a 5 punte avente lati di lunghezza 200 pixel. Dopo questo posso definire altre impostazioni come la forma del nostro cursore, la rapidità del tratto che viene disegnato e alla fine nascondo la tartaruga con hideturle().
Per maggior chiarezza ho realizzato un video che potete vedere.
Per oggi è tutto... siamo andati alla conquista dell'universo!!!
Un bacione.
Alessandra.
PUNTATE DI PYTHON:
➤ Il Python e le tartarughe.
➤ Python e le bandiere.
➤ 🍀🍀 Triangoli e quadrifogli con Python.🍀🍀
➤ I cerchi con Python.
➤ I fiori con Python.
➤ Modelliamo un mondo astratto con Python.
➤ Compito risolto di Python.
Dove non diversamente indicato le foto sono di mia proprietà