4. Geometria analitica In questa sezione vengono proposti alcuni problemi di geometria analitica. Oltre a Python viene usata la libreria Pyplot di Pygraph. Pyplot mette a disposizione una finestra che contiene un piano cartesiano con la possibilità di disegnare gli assi e di far disegnare funzioni del tipo y=f(x), x=f(y) o polari: ro=f(th). Per l’installazione della libreria Pygraph, che contiene anche Pyplot, vedi l’introduzione.

4.1. Punti, segmenti, poligoni Come disegnare alcuni elementi geometrici nel piano cartesiano. La geometria analitica è uno strumento che permette di collegare due branche della matematica: l’algebra e la geometria. Permette quindi di affrontare problemi algebrici con metodi geometrici o viceversa problemi geometrici con strumenti algebrici. Lo strumento che permette di fare ciò è il riferimento cartesiano. La libreria pycart fornisce alcune la classe Plane dotata di alcuni metodi che permettono di disegnare punti, segmenti, poligoni, oltre agli assi cartesiani. Possiamo iniziare dall’ambiente IDLE per vedere come attivare le funzionalità di Pycart. Innanzitutto dobbiamo caricare l’oggetto Plane dalla libreria: >>> from pycart import Plane A questo punto, se tutto è andato bene, non deve essere successo niente. Se invece appaiono delle scritte rosse, vuol dire che qualcosa è andato storto, bisogna leggere il messaggio di errore e cercare di porre rimedio. In particolare bisogna essere sicuri di aver installato correttamente la libreria Pygraph. Poi dobbiamo creare un piano cartesiano su cui disegnare. Tecnicamente “istanziamo” un oggetto della classe Plane: >>> p=Plane() Questa volta, se tutto è andato bene, appare una finestra grafica vuota. La classe Plane ha diversi metodi e quindi possiamo dare all’oggetto p diversi comandi. Incominciamo con chiedere a p di tracciare gli assi cartesiani: >>> p.axes(True) Avendo passato l’argomento True, oltre agli assi, verrà disegnata anche una schiera di puntini. Ora possiamo assegnare a due variabili le coordinate di due punti: >>> p1=(2, 4) >>> p2=(-4, 3) Le variabili p1 e p2 sono associate ora a due oggetti tupla che in Python realizzano sequenze ordinate immutabili, nel nostro caso, delle coppie ordinate di numeri. Ora che abbiamo le coordinate dei punti che vogliamo tracciare non ci resta che dire all’oggetto p di disegnare i punti proprio lì: >>> p.drawpoint(p1) >>> p.drawpoint(p2) I punti vengono disegnati dove richiesto, ma può darsi che ci sembrino troppo piccoli e insignificanti. Possiamo decidere dimensioni e colore. Incominciamo ripulendo il piano cartesiano: >>> p.reset() Oltre a cancellare tutto quello che c’è nella finestra grafica, reset si premura di ridisegnare gli assi. Ora possiamo cambiare le dimensioni e il colore degli oggetti grafici che verranno disegnati: >>> p.setwidth(3) >>> p.setcolor(“#5050a0”) Il colore è nel formato: “#RRGGBB” dove RR, GG, BB sono tre numeri in formato esadecimale che rappresentano rispettivamente le componenti dei tre colori fondamentali: rosso, verde, blu. Ora possiamo disegnare i due punti: >>> p.drawpoint(p1) >>> p.drawpoint(p2) A questo punto se vogliamo disegnare un segmento, magari giallino, possiamo dare al piano p i comandi: >>> p.setcolor(“#a0a050”) >>> p.drawsegment((-6, 8), (5, 7)) Da notare che il metodo drawsegment richiede le coordinate di due punti, cioè due coppie di numeri. Nel piano cartesiano un poligono può essere individuato dalle coordinate dei suoi vertici. L’istruzione: >>> poligono1=((-7, -5), (4, -7), (2, -2), (-3, -1)) assegna alla variabile poluigono1 una sequenza di coppie di numeri, per noi, una sequenza di coordinate. Per disegnare un poligono verdino possiamo usare il metodo drawpoly, dopo aver cambiato il colore della “penna”: >>> p.setcolor(“#50a050”) >>> p.drawpoly(poligono1) drawpoly richiede come argomento una sequenza di coppie di numeri, in questo caso, la sequenza è contenuta nella variabile poligono1, ma avremmo anche potuto passarla direttamente scrivendo: >>> p.drawpoly(((-7, -5), (4, -7), (2, -2), (-3, -1))) In questo modo bisogna solo fare un po’ più di attenzione al numero di parentesi. La coppia di parentesi più esterna contiene gli argomenti passati al metodo, la seconda contiene la lista di punti, le altre contengono le coordinate.

Riassumendo Il piano cartesiano presente nella libreria pygraph mette a disposizione vari metodi tra cui: setcolor(“#rrggbb”) dove rr, gg, bb, sono numeri esadecimali di 2 cifre, setwidth(<numero>) axes([True]) drawpoint(<coordinate>) drawsegment(<coordinate>, <coordinate>) drawpoly(<sequenza di coordinate>)