Capitolo 5. Script

Kig ti permette di creare dei tipi personalizzati nel linguaggio di script Python. Questa è una caratteristica molto avanzata, e conosco solo un altro programma per la geometria interattiva con una funzionalità simile (il programma per GNOME Dr.Geo).

In Kig, il sistema di script in Python ti permette di definire degli oggetti da altri, definiti genitori. Per esempio, se sei un insegnante di matematica e conosci molti modi per calcolare un punto interessante di una conica, invece di confonderti con costruzioni complesse e macro, scrivi solamente il codice Python necessario per calcolarlo, e Kig te lo mostrerà.

Immagina di non conoscere il tipo incorporato «Punto medio» di Kig, e di voler mostrare il punto medio di due punti dati. Fai clic sul pulsante Script Python nella barra degli strumenti, oppure seleziona OggettiAltriScript Python dalla barra dei menu. Ti si presenta, quindi, una procedura guidata che ti permette di procedere.

La procedura guidata degli oggetti Script

La prima cosa da fare è selezionare gli argomenti per l'oggetto script. Nel nostro esempio, questi sono rappresentati dai due punti dei quali vogliamo calcolare il punto medio. Selezionali nella finestra principale di Kig, e fai clic su Successivo per procedere.

Adesso ti si presenta una casella di testo dove puoi inserire il codice per lo script. Ce n'è già un pezzo che serve da modello, oltre a dei commenti. Devi assicurarti di aver inserito del codice Python valido. Chi ha già familiarità con Python, noterà che stiamo definendo una funzione Python chiamata calc. Perciò è necessario seguire le regole di Python per la definizione delle funzioni. Per esempio, ogni linea della funzione dovrebbe iniziare con tab. La prima linea che non inizia con tab termina la definizione della funzione.

La funzione Python da definire è chiamata calc, e nel nostro caso accetta due argomenti. Questi sono gli oggetti selezionati come argomenti nella schermata precedente. Hai bisogno di tanti argomenti quanti ne hai selezionati lì. Sono chiamati arg1 e arg2 ma, se vuoi, puoi cambiare i loro nomi in qualcosa di più significativo.

Nella funzione puoi fare tutti i calcoli che ritieni necessari, usando, se opportuno, i due argomenti. Dovresti ritornare l'oggetto che vuoi definire. Nel nostro caso, questo è un oggetto Point. Anche i due argomenti sono oggetti Point, e possiamo usare la funzione Point.coordinate() per ricavare le coordinate dei due punti dati.

I calcoli necessari nel nostro esempio sono molto semplici: dobbiamo sommare assieme le due coordinate, e dividere il risultato per due. Costruiamo quindi un nuovo punto usando il risultato. Il codice Python necessario è:

def calc( a, b ):
    m = ( a.coordinate() + b.coordinate() ) / 2;
    return Point( m )
L'inserimento del codice per il punto medio nella procedura guidata dell'oggetto Script.

Se fai clic sul pulsante Fine, nel documento di Kig apparirà il nuovo oggetto. Se sposti uno dei punti, quello appena creato si sposterà di conseguenza. In questo modo possono essere costruiti molti oggetti potenti: sei incoraggiato a provare.

L'oggetto Script appena costruito.

Nel codice Python si possono usare tutti gli oggetti di Kig. Come abbiamo visto sopra, i punti appartengono alla classe Point, e ad es. puoi usare il metodo Point.coordinate(). Puoi restituire tutti i tipi di oggetti, non solo Point. Dal codice Python di Kig sono disponibili molte altre classi e metodi; sul sito di Kig è disponibile una guida più completa.