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: