Esempi grafici con Tkinter

 ☗ 

Nota: molti di questi esempi sono stati scritti scritti per imparare le basi del linguaggio e l'uso di Tkinter, quindi il codice stilisticamente non è il massimo, lo riporto giusto per riferimento personale. Alcune versioni sono aggiornate a Python3.



Animazione tipo screensaver



animat4.txt (Python2.5) 2008
animat4_new.txt (Python2&3) 2013

Funzione cartesiana animata



funz7.txt (Python2.5) 3/2008

Funzione 3D animata



funz13.html (Python2.5) 2008

Particelle confinate

Muovendo lo slider si varia la forza del campo anulare e le particelle si ridispongono di conseguenza respingendosi a vicenda, si possono far "pulsare", o anche schizzare al di fuori del campo se acquistano troppa velocità.




particle.txt (Python2) 3/2008
particelle2.txt (Python2&3) 2013

Life

Il famoso gioco di Conway, cliccando su Edit matrix si può disegnare la matrice di partenza (frecce per spostarsi e shift+frecce per piazzare le celle). Con Copia/Incolla si può memorizzare la matrice attuale e richiamarla. Con Clear si cancella la matrice (ma non l'eventuale copia memorizzata). Con One step si avanza di una generazione, con START/STOP si avvia/ferma l'esecuzione automatica.




life.txt (Python2+Win) 3/2008
life100x75.txt (Python2&3) 7/2013

Prove disegno e animazione con PIL

Il canvas di Tkinter non è una superficie bitmap, ma un piano su cui posizionare oggetti grafici. Usando la libreria PIL si può lavorare con un bitmap in cui caricare immagini fotografiche e su cui disegnare anche singoli pixel con gli appositi comandi grafici. Non trattandosi di oggetti, il disegno di grandi quantità di elementi grafici (migliaia o decine di migliaia) è più veloce rispetto allo stesso disegno realizzato con gli oggetti grafici del canvas di Tkinter (e non va ad occupare tutta la memoria richiesta dagli oggetti). Tuttavia nel caso di animazione può essere più lento perché c'è da mettere in conto la conversione dell'immagine PIL in immagine "tk compatibile" e la sua assegnazione al canvas. L'esempio seguente mostra un'animazione ottenuta disegnando in un immagine PIL e trasferendola in una PhotoImage Tkinter.




pil1.txt (Python2+PIL)

Disegno funzione con PIL

In questo esempio si disegna una funzione, si visualizza in Tkinter e si salva su disco come .png



pil2.txt (Python2+PIL) 11/2008

Curve di Bezier

Animazione curve di Bezier (da 2 a N curve) con o senza la visualizzazione dei punti di controllo. Impostando un flag si può scegliere se fare il plottaggio con i metodi grafici del canvas, oppure su un'immagine PIL, visualizzata poi nal canvas e salvata come bezier.png all'uscita.






bezier.txt (Python2+PIL) 11/2008

Variante curve di Bezier

Stessa animazione ma con effetto scia.



bezier3.txt (Python2+PIL) 11/2008
bezier_new.txt (Python2&3) 2012

Orologio con scia in dissolvenza animata



orologio.txt (Python2) 2010
orologio_new.txt (Python 2&3) 2013

Attrattori con plottaggio sfumato



liugraf4.txt (Python2+PIL)

Equazione della retta


intercetta.txt (Python2&3) 2013

Colori HSV

I tre slider specificano rispettivamente colore saturazione e intensità.


colorHSV.txt (Python2&3) 2012