Python Turtle Graphics – Come dare spazio all’estro

Turtle Graphics

Oggi utilizzeremo la libreria Python Turtle Graphics per mostrare quanto sia semplice e divertente creare al PC grafici colorati e ricorsivi.

Uno dewi doni che ho maggiormente apprezzato da bambino fu lo “spirograph“. Null’altro che una serie di ruote dentate in plastica, da far “girare” con una penna colorata lungo un percorso circolare, anch’esso dentato. Il rapporto tra il numero dei denti di ciascuna ruota e quello del percorso consentiva di creare disegni fantastici.

turtle graphics spirograph

L’avvento dell’home computer (nel mio caso un Commodore 64) mi consentì di studiare le funzionalità grafiche e di calcolo  automatico. Cercavo le formule delle più famose curve cicloidi (quelle, per intenderci, create in coordinate polari e in genere rappresentate da coppie di equazioni trascendenti) per mettere alla prova le mie cognizioni e i miei computer. Avevo appena acquistato un clone IBM AT da 20 MHz con annesso coprocessore matematico 80287 da 8 MHz (allora era l’unico modo per evitare di perder tempo simulando calcoli in virgola mobile…) e mi divertivo in questo modo. Poi giunsero i programmi per lo sviluppo di grafici frattali, e tutto divenne ancor più appassionante.

Ma stiamo divagando.

Turtle Graphics

Oggi utilizzeremo il modulo turtle (tartaruga) per ricreare grafici interessanti utilizzando ill nostro fido Python.

Abbiamo visto che la grafica della tartaruga (in inglese turtle graphics) o geometria della tartaruga è un termine utilizzato nella computer grafica come metodo di programmazione della grafica vettoriale, che si basa sull’utilizzo di un cursore relativo (detto “tartaruga”) su un piano cartesiano (asse x e y). Si tratta di un elemento fondamentale del linguaggio di programmazione Logo, per cui è stata originariamente sviluppata da Seymour Papert alla fine degli anni 60.

La tartaruga ha tre attributi:

  1. una posizione
  2. Un orientamento
  3. Una penna con attributi (colore, larghezza, indicatore di penna sollevata o abbassata).

La tartaruga si muove attraverso dei comandi relativi alla sua posizione, come “vai avanti di 10” e “gira a sinistra di 90”. I valori numerici rappresentano grandezze diverse, che possono essere ad esempio millimetri, pixel o gradi sessagesimali. Alla penna che la tartaruga impugna possono essere attribuiti un colore o una larghezza. Uno studente può comprendere (e prevedere e ragionare su) il movimento della tartaruga immaginando cosa farebbe se fosse una tartaruga.

Da questi elementi costitutivi si possono costruire forme più complesse come quadrati, triangoli, cerchi e altre figure composte. Combinato con flusso di controllo, procedure e ricorsione. L’idea dei grafici tartaruga è utile anche nei sistemi L per generare frattali.

Il programma di oggi

Oggi vedremo come creare un divertente grafico composto da una retta che ruota attorno ad un punto, modificando a poco a poco la porpria lunghezza ed i propri colori.

Il programma è semplicissimo, ma l’effetto finale è garantito.

Analizziamolo assieme.

Per prima cosa vengono importati i moduli necessari per la grafica. IO ho importato l’intero modulo per avere accesso all’ultima funzione, exitonclick(), ma se non vi occorre potete tranquillamente procedere a decommentare l’importazione selettiva mostrata nella riga 2. Questo vi permetterà di liberaree parte della memoria fisica del vostro computer.

Definiamo quindi le costanti di ambiente (velocità di esecuzione, colore dello sfondo, variabili di colore).

Il loop non fa altro che

  1. Vvariare il parametro i e con esso alterare il colore della linea tracciata.
  2. Disegnare una riga di lunghezza crescente, anch’essa parametrizzata sulla variabile i
  3. Ruotare l’orientamento della penna di 91 gradi (in modo da creare una sorta di “quadrato aperto”)
  4. Assegnare alla penna il colore con le nuove componenti appena calcolate dal valore di i

Al termine del loop, il programma si ferma, in attesa di un click del mouse per chiudersi.

Turtle Graphics

Si può fare di più

Come avete visto, le funzioni inserite nel loop sono sostanzialmente tre: disegna, ruota, cambia_colore. Facoile no?

Ma conosco i miei lettori, e sono convinto che abbiano già intravisto le caratteristiche del linguaggio, associato azd una propgrammazione un po’ più “spinta”.

Ad esempio, potremmo creare un algoritmo ricorsivo che disegni un albero frattale, l’Albero della Vita.

Il programma potete scaricarlo da questo indirizzo.

L’immasgine finale? Eccola qui!

Turtle Graphics

 

 

Iscriviti ai nostri gruppi Telegram

Link utili

Seguici per non perdere le prossime novità!

 

Definire ciò che si è non risulta mai semplice o intuitivo, in specie quando nella vita si cerca costantemente di migliorarsi, di crescere tanto professionalmente quanto emotivamente. Lavoro per contribuire al mutamento dei settori cardine della computer science e per offrire sintesi ragionate e consulenza ad aziende e pubblicazioni ICT, ma anche perche’ ciò che riesco a portare a termine mi dà soddisfazione, piacere. Così come mi piace suonare (sax, tastiere, chitarra), cantare, scrivere (ho pubblicato 350 articoli scientfici e 3 libri sinora, ma non ho concluso ciò che ho da dire), leggere, Adoro la matematica, la logica, la filosofia, la scienza e la tecnologia, ed inseguo quel concetto di homo novus rinascimentale, cercando di completare quelle sezioni della mia vita che ancora appaiono poco ricche.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.