Elementi fondamentali

Come creare un piano vuoto, dei punti, delle rette e altri oggetti geometrici.

La geometria si basa su alcuni elementi fondamentali che non si definiscono: piano, punto, retta. A partire da questi oggetti se ne possono definire altri.

I postulati definiscono le relazioni tra gli elementi fondamentali.

Le figure geometriche sono insiemi di oggetti geometrici.

La geometria studia le caratteristiche che possono cambiare o che rimangono invarianti quando operiamo alcune trasformazioni. Ad esempio da un punto esterno ad una circonferenza posso tracciare due tangenti alla circonferenza stessa, se muovo il punto, la lunghezza delle tangenti varia, ma le due tangenti rimarranno sempre uguali tra di loro.

La ]geometria interattiva] permette di visualizzare facilmente elementi varianti e invarianti di una certa costruzione geometrica.

Strumenti

In questo capitolo utilizzeremo i seguenti strumenti di Pyig:

  • Point(x, y) crea un punto con date coordinate.
  • Line(p0, p1) crea una retta passante per p0 e p1.
  • Ray(p0, p1) crea una semiretta con origine in p0 passante per p1.
  • Segment(p0, p1) crea un segmento di estremi p0 e p1.
  • Circle(centro, punto) crea una circonferenza dati il centro e un suo punto.

Problema

Crea un piano e inserisci: un punto, una retta un segmento, una semiretta, un angolo, una circonferenza, un testo. Modifica poi le figure trascinando i punti base con il mouse.

Soluzione guidata

  1. Crea un nuovo programma e salvarlo con il nome: gi01Elementi.py. Per creare un nuovo programma:

    1. avvia IDLE (in Windows: menu-programmi-Python-IDLE);
    2. crea un nuovo editor: menu-file-new window;
    3. salvalo nella tua cartella con il nome desiderato: menu-file-save;

    #. esegui il programma in modo da controllare che non ci siano errori: tasto <F5>;

  2. Incominciamo a scrivere il nostro programma.

    1. Scrivi un’intestazione fatta da commenti che contenga le informazioni:
    • data,
    • nome,
    • titolo del programma;
    1. esegui il programma in modo da controllare che non ci siano errori (<F5>).
  3. Il programma vero e proprio è fatto da tre parti:

    1. la lettura delle librerie;
    2. il programma principale;
    3. l’attivazione della finestra grafica.

    A questo punto il programma assomiglierà a:

    # 7/9/14
    # Daniele Zambelli
    # Elementi di base della geometria
    
    # lettura delle librerie
    
    # programma principale
    
    # attivazione della finestra grafica
    
  4. Fin qui abbiamo scritto solo commenti, ora incominciamo a scrivere comandi:

    1. Leggo la libreria Pyig e le do un nome più breve, “ig”:

    import pyig

    1. Il programma principale consiste, per ora, in una sola istruzione, creo un “InteractivePlane” della libreria “ig” e associo questo oggetto all’identificatore (=alla parola) “ip”:

    ip = pyig.InteractivePlane()

    1. Rendo attiva la finestra grafica:

    ip.mainloop()

  5. Aggiungiamo le istruzioni sotto ai commenti:

    # 7/9/14
    # Daniele Zambelli
    # Elementi di base della geometria
    
    # lettura delle librerie
    import pyig
    
    # programma principale
    ip = pyig.InteractivePlane()
    
    # attivazione della finestra grafica
    ip.mainloop()
    
  6. Prova il programma premendo il tasto: <Ctrl-c> o cliccando su menu-Run-Run module. Deve apparire una finestra grafica con un riferimento cartesiano e una griglia di punti. La finestra grafica è attiva, risponde al mouse e si può chiudere. Se non avviene questo, probabilmente è apparso un messaggio di errore in rosso nella shell di IDLE, leggi il messaggio, correggi l’errore e ritenta.

Ora incominciamo ad aggiungere al programma principale le istruzioni per risolvere il problema. Incominciamo creando un punto. Aggiungiamo al programma principale il comando della libreria pyig che crea un punto associando l’oggetto appena creato all’identificatore “p_0”:

p_0 = pyig.Point(3, 4)

È possibile trascinare con il mouse il punto nel suo piano: il punto non cambia cambiando la sua posizione.

In geometria un punto non dovrebbe avere altre caratteristiche oltre la propria posizione, ma a noi fa comodo poter dare ai punti anche altre caratteristiche come: uno spessore, un colore, un’etichetta:

p_1 = pyig.Point(-2, 6, color='red', width=6, name='A')

In generale a tutti gli oggetti di pyig che possono essere visualizzati si possono assegnare le seguenti caratteristiche:

  • colore: color=<una stringa di colore>;
  • spessore: width=<un numero>;
  • etichetta: name=<una stringa>;
  • visibilità: visible=<True> o <False>.

La sintassi del costruttore dell’oggetto Point è:

Point(<x>, <y>
      [, visible=True][, color='green'][, width=3][, name=''])

I primi due parametri, x e y, sono obbligatori, quelli messi tra parentesi quadre sono opzionali e, se non specificati, hanno il valore riportato sopra.

Passiamo alla seconda richiesta del problema: disegnare una retta.Per poter tracciare una retta abbiamo bisogno di due punti infatti due punti individuano univocamente una retta (per due punti passa una e una sola retta). Possiamo utilizzare i due punti già disegnati e creare la retta passante per p_0 e p_1:

r_0 = pyig.Line(p_0, p_1)

E se vogliamo creare un’altra retta cambiando lo spessore, il colore e dandole un nome? Possiamo provare con la stessa tecnica usata per Point. Ma per disegnare un’altra retta ci servono altri due punti, dato che ci servono solo per creare la retta possiamo costruirli all’interno del costruttore della retta:

r_1 = pyig.Line(pyig.Point(-4, -3, color='blue', width=6, name='B'),
                pyig.Point(2, -6, color='green', width=6, name='C'),
                color='pink', width=4)

La sintassi del costruttore dell’oggetto Line è:

Line(<punto_0>, <punto_1>
      [, visible=True][, color='blue'][, width=3][, name=''])

È possibile trascinare con il mouse i punti base della retta, ma la retta continuerà a passare per quei due punti.

Le sintassi dei costruttori degli altri oggetti richiesti dal problema sono:

Ray(<punto_0>, <punto_1>
    [, visible=True][, color='blue'][, width=3][, name=''])

Segment(<punto_0>, <punto_1>
        [, visible=True][, color='blue'][, width=3][, name=''])

Circle(<centro>, <uunto>
       [, visible=True][, color='blue'][, width=3][, name=''])

Ora crea tu una semiretta, un segmento e una circonferenza.

Riassumendo

  • Per lavorare con la geometria interattiva dobbiamo far caricare a Python la relativa libreria ad esempio con il comando:

    import pyig
    
  • Un programma è composto (per ora) dalle seguenti parti:

    <intestazione>
    <lettura delle librerie>
    <programma principale>
    <attivazione della finestra grafica>
    
  • La sintassi dei costruttori degli oggetti base della geometria è:

    Point(<x>, <y>
          [, visible=True][, color='green'][, width=3][, name=''])
    
    Line(<punto_0>, <punto_1>
         [, visible=True][, color='blue'][, width=3][, name=''])
    
    Ray(<punto_0>, <punto_1>
        [, visible=True][, color='blue'][, width=3][, name=''])
    
    Segment(<punto_0>, <punto_1>
            [, visible=True][, color='blue'][, width=3][, name=''])
    
    Circle(<centro>, <punto>
           [, visible=True][, color='blue'][, width=3][, name=''])
    

Prova tu

  1. Crea un nuovo programma che disegni un segmento di colore viola, con due estremi rosa, grandi a piacere.
  2. Crea un programma che disegni un rettangolo. Muovendo i punti base
  3. Crea un programma che disegni un triangolo. Muovendo i punti base continua a rimanere un triangolo? continua a rimanere un rettangolo?
  4. Crea un programma che disegni un quadrilatero delimitato da semirette.
  5. Crea un programma che disegni tre punti A, B e C, disegna poi le tre circonferenze:
    • di centro A e passante per B;
    • di centro B e passante per C;
    • di centro C e passante per A;
  6. Disegna due circonferenze concentriche. Muovendo i punti base, si mantiene la proprietà “essere concentriche”?