mercoledì 26 febbraio 2014

GeoGebraScript


GeoGebra è dotato di un linguaggio di scripting detto GeoGebraScript che consente all'utente di interagire con i fogli di lavoro. Non si tratta di comandi nuovi, sono le stesse azioni che si possono fare mediante gli usuali strumenti di GeoGebra come la creazione di oggetti o interventi sulla proprietà degli oggetti stessi. La novità è che si possono fare direttamente dalla finestra grafica, a discrezione dell'utente, impartendo, con un unico comando una o più istruzioni programmate.

I comandi GeoGebraScript sono associati agli oggetti sotto forma di proprietà degli oggetti stessi e sono attivati da un evento.
Gli eventi possono essere di due tipi: un clic sull'oggetto o un suo aggiornamento dove per aggiornamento si intende una variazione delle sue caratteristiche: nel caso di un punto per esempio una variazione della sua posizione sul piano per effetto di un trascinamento, oppure il cambiamento di valore di una variabile. Non è possibile definire uno script senza associarlo ad un oggetto.

Per associare uno script a un oggetto si deve fare clic con il tasto destro del mouse sull'oggetto stesso, si seleziona l'opzione Proprietà e poi la scheda Scripting.
Tale scheda ne contiene altre due: Al clic, All'aggiornamento con un'area di editor in cui definire gli script associati al relativo evento sull'oggetto selezionato.

Un elenco completo di questi comandi si trova all'indirizzo web:
http://wiki.geogebra.org/it/Comandi_Scripting
dove, per ogni comando, troviamo una spiegazione sul suo utilizzo.

In questa sede ci limitiamo a presentare l'uso di alcuni comandi attraverso esempi che possono risultare utili per per iniziare.

Cambiamo colore ad un oggetto

Il comando da usare è: ImpColore[<Oggetto>, "<Colore>"]

Costruiamo un foglio in cui è definito un punto A ed una retta a passante per due punti. Questi oggetti vengono rappresentati inizialmente da GeoGebra di colore Blu, noi vogliamo che:
  • se clicchiamo sul punto A la retta venga colorata di rosso ed i punti di verde
  • se muoviamo A retta e punti ritornino ad essere blu.
L'azione va compiuta sul punto A e quindi i comandi devono essere associati alle proprietà di A
Clichiamo su A con il pulsante destro e selezioniamo proprietà/scripting inserendo i comandi come indicato nella immagine sottostante:

Ad ogni scheda sono associati comandi multipli, non è necessario inserire un punto e virgola al termine di ogni riga.
Bisogna indicare l'oggetto cui si riferisce il comando e, per quanto riguarda i colori, i principali possono essere inserito come testo, per gli altri colori si deve usare il comando ImpColoreDinamico indicando le relative coordinate RGB.
Elenco dei colori all'indirizzo: http://wiki.geogebra.org/it/Comando_ImpColore
Nessuna azione viene compiuta se si sposta o si clicca sulla retta o sui punti per cui passa.

Naturalmente può intervenire anche sul punto su cui si clicca, basterebbe indicare la sua etichetta:
ImpColore[A,”Rosso”]
In questo caso però occorre predisporre il comando in modo da poter restituire ad A il suo colore iniziale facendo in modo che al clic si comporti come un interruttore assumendo i colori alternativamente.
Dichiariamo una variabile logica e e facciamo in modo che quando questa ha valore true il punto venga colorato di rosso, quando è false di blu

Bisogna fare in modo che ad ogni clic venga cambiato il valore di verità della variabile e
Comandi:
e=!e
Se(e==true, ImpColore[A,"Rosso"], ImpColore[A,"Blu"])

Il primo comando è una operazione di assegnazione che assegna ad - e - il valore - non e -
il secondo esegue un controllo: se e è vero imposta il colore rosso, altrimenti il blu.


Fissiamo un oggetto rispetto ad una costruzione
Sappiamo che in ogni costruzione GeoGebra possiamo fare in modo che un oggetto non sia spostabile sul piano ma resti vincolato, con un comando GeoGebraScript possiamo fare in modo di modificare questa proprietà con un clic.

Comando: ImpFisso[<Oggetto>, <true | false>]
Tra gli argomenti compare l'oggetto da fissare e una variabile logica, se è vera il punto viene fissato, se è falsa viene svincolato e si può agganciare e spostare per il piano.
In questi casi occorre fare in modo che ci sia qualche segno che ci indica lo stato della proprietà del punto A e quindi aggiungiamo il comando a quello visto per il cambio di colore in modo che se la variabile e è vera il punto è rosso ed è vincolato mentre se è blu è libero.

Comandi:
e=!e
Se(e==true, ImpColore[A,"Rosso"], ImpColore[A,"Blu"])
ImpFisso[A,e]


Pulsanti

I pulsanti rappresentano lo strumento più naturale cui associare comandi GeoGebraScript legandoli all'evento "Al clic".

Un pulsante può essere usato in modo comodo ed efficace per aumentare o diminuire il valore di una variabile. La funzione è analoga a quella di uno slider per quanto riguarda la somma ma è molto più generale.

Si definisce un pulsante e come proprietà e si può impostare uno script del tipo:
a = a + 1 per aumentare di una unità la variabile a ad ogni clic
a = a + 3 oppure a = a + k per incrementare di valori diversi anche variabili
a = 2 a oppure a = k a per moltiplicare per costanti
si tratta comunque di variazioni programmabili a seconda delle esigenze.

Comandi per ingrandire e rimpicciolire:
ZoomAvanti[<Fattore di scala>] Effettua uno zoom in avanti
ZoomAvanti[<Fattore di scala>, <Punto centrale>] Zoom a partire da un punto centrale
ZoomIndietro[<Fattore di scala>] Effettua uno zoon indietro
CentraVista[<Punto>] Centramento della vista rispetto ad un punto

Questi comandi possono essere associati a dei pulsanti e possono servire per analizzare con comodità delle zone di piano in cui la rappresentazione è poco chiara.
Questo può essere utile nello studio delle funzioni in cui per avere la visione di insieme si fatica a vedere quanto succede nell'intorno di alcuni punti

Nella figura sottostante è stato definito un punto C che si può liberamente spostare nel piano per analizzare la zona che si desidera, poi sono stati associati i seguenti comandi:
ZoomAvanti[2,C] associato al pulsante Zoom +
ZoomIndietro[2,C] associato al pulsante Zoom -
CentraVista[C] associato al pulsante Centra

Se si vuole analizzare l'andamento nell'origine degli assi si può portare C in prossimità dell'intersezione degli assi e cliccare ripetutamente Zoom +.

I pulsanti rimangono in una posizione assoluta rispetto alla finestra di visualizzazione e quindi sono sempre disponibili.

Comando: ImpRapportoAssi[ <Numero>, <Numero> ]

Nello studio di funzioni solitamente viene scelto una zona del piano in cui fare la rappresentazione ma talvolta quello che si vede può essere fuorviante

Nel caso dell'immagine sovrastante si vede come la cubica (rossa) è maggiore dell'esponenziale (azzurra) e si potrebbe trarre la conclusione che non ci sia più intersezione.
Dalla teoria però si sa che l'esponenziale è un infinito di ordine superiore, ma per verificare certe proprietà occorre cambiare scala agli assi.

Si possono impostare due pulsanti, uno che chiamiamo y + cui associamo i comandi:
k=k*2
ImpRapportoAssi[1,k]
Un'altro cge chiamiamo y – cui associamo i comandi
k = k/2
ImpRapportoAssi[1,k]
Ad ogni clic sul puòsante y + il rapporto y/x viene raddoppiato, per l'altro pulsante viene dimezzato

Come si vede dalla figura quando il rapporto prende il valore di 16 si può osservare chiaramente la proprietà dell'esponenziale.

Comando per assegnare un valore ad una variabile: ImpValore[<Oggetto>, <Booleano>]

Scelta esclusiva
Si possono predisporre tre o più caselle di controllo collegate ad altrettante variabili logiche in cui si vuole che una sola sia vera. In GeoGebra solitamente le variabili logiche sono indipendenti una dall'altra quindi per avere una scelta esclusiva, utile nelle risposte multiple dei quiz, si può ricorrere a GeoGebraScript.

Si dichiarano tre variabili logiche che vanno mostrate sulla finestra grafica sotto forma di casella di controllo e si interviene sulle loro proprietà
Alle propreità della casella A si associano i comnadi:
ImpValore(a,true) ImpValore(b,false) ImpValore(c,false)
Alla casella B:
ImpValore(b,true) ImpValore(a,false) ImpValore(c,false)
Alla casella C
ImpValore(c,true) ImpValore(b,false) ImpValore(a,false)

La stessa logica può essere applicata a più di tre caselle, si assegna la casella cliccata a vero e occorre riassegnare tutte le altre a falso.



Aggiornamento automatico di una variabile

Si parla di aggiornamento di una variabile quando questa cambia valore, nel caso di un valore numerico possiamo fare in modo che questa venga aggiornata in modo automatico, basta definire uno slider e impostare la animazione attiva.
Possiamo costruire una applet che faccia le funzioni di un semaforo aggiornando a tempi fissi i colori di tre punti.
Definiamo tre punti A, B, C rappresentandoli alla massima grandezza possibile e definiamo uno slider nella variabile n che varia da 1 a 10 solo per valori interi.

Clicchiamo con il tasto destro su n e tra le sue Proprietà alla voce Script/All'aggiornamento scriviamo i seguenti comandi GeoGebraScript:
Se[n<7, ImpColore[A,"Verde"], ImpColore[A,"Nero"]]
Se[n==6, ImpColore[B,"Giallo"], ImpColore[B,"Nero"]]
Se[n>6, ImpColore[C,"Rosso"], ImpColore[C,"Nero"]]

Se impostiamo la animazione attiva con l'opzione ripeti: Crescente i valori di n vengono aggiornati automaticamente e quindi:
per valori di n da 1 a 6 il punto A è colorato di verde, altrimenti di nero
quando n è 6 il punto B è giallo, in tutti gli altri casi è nero
quando n è maggiore di 6 il punto C è rosso

Quando l'animazione è attiva viene simulata l'accensione delle luci come nel caso di un semaforo.

Riscriviamo come esempio gli stessi comandi in cui i colori sono espressi in coordinate dinamiche di colore:
Se[n<7,ImpColoreDinamico[A,0,1,0],ImpColoreDinamico[A,0,0,0]]
Se[n==6,ImpColoreDinamico[B,1,1,0],ImpColoreDinamico[B,0,0,0]]
Se[n>6,ImpColoreDinamico[C,1,0,0],ImpColoreDinamico[C,0,0,0]]

l'applet può essere scaricata da geoGebraTube all'indirizzo:

Nessun commento:

Posta un commento