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:

lunedì 17 febbraio 2014

Tassellazione 2


Tassellazioni che derivano dal Quadrato


Abbiamo visto che il quadrato permette una tassellazione molto facile che è sempre stata usata nella piastellazione dei pavimenti delle nostre case. Partendo da questa figura base è possibile ricavare una grande varietà di figure geometriche tassellabili.

Iniziamo da una figura geometrica facilmente costruibile partendo da una base assimilabile ad un foglio a quadretti e costruiamo una tassellazione che viene chiamata Osso facendo riferimento alla forma del suo modulo base.
In questo caso conviene rappresentare gli assi cartesiani e la griglia di cui il modulo occupa esattamente un quadrato di lato 4 x 4.

Tracciamo un poligono concavo di 12 lati con la forma rappresentata nella figura che chiameremo P1 facendo bene attenzione che le coordinate dei punti abbiano valori interi.
Gli altri elementi della tassellazione sono ottenuti per traslazione e quindi vanno definiti due vettori di lunghezza 4 perpendicolari tra loro con lo stesso orientamento dei lati del quadrato che contiene il modulo.

In seguito conviene nascondere i punti dei vertici e, partendo da P1 tracciare i poligono traslati seguendo lo schema rappresentato nella immagine sottostante.
Lo schema del comando per ottenere una traslazione è:
Trasla[ <Oggetto>, <Vettore> ]
Per mantenere uno schema logico ordinato assegniamo anche le etichette ai poligono traslati.

P2 = Trasla[P1, u] P3 = Trasla[P2, u] P4 = Trasla[P3, u]

Q1 = Trasla[P1, v]    Q2 = Trasla[P2, v]
Q3 = Trasla[P3, v]    Q4 = Trasla[P4, v]
R1 = Trasla[Q1, v]    R2 = Trasla[Q2, v]
R3 = Trasla[Q3, v]    R4 = Trasla[Q4, v]
E così di seguito per rappresentare quanti moduli si desidera.

Visto che si tratta di una serie di traslazioni dello stesso poligono è possibile costruire la matrice di oggetti mediante due liste nidificate come è stato fatto nel post precedente

Il comando che costruisce le liste è:
Tass = Successione[Trasla[Successione[Trasla[P1, k u], k, 0, 5],
 h v], h, 0, 3]


Si possono definire due slider nelle variabili m ed n definite per numeri naturali e costruire le liste dinamiche in modo che si possa variare il numero di poligoni rappresentati.

Il comando diventa:
Tass = Successione[Trasla[Successione[Trasla[P1, k u], k, 0, m-1],
 h v], h, 0, n-1]
Questi procedimenti possono essere applicati a qualsiasi modulo contenuto in un quadrato, la particolarità di questo schema è che le porzio i di piano lasciate libere dai poligoni hanno la stessa forma dei poligoni stessi.
Si può trovare il file all'indirizzo: 

Un'altra forma geometrica con questa proprietà è la Croce Romana che presentiamo qui anche se non è derivata dal quadrato

Il modulo base è formato da una croce disegnata con l'aiuto dei quadretti della griglia, anche qui è importante sincerarsi che le coordinate dei punti siano numeri interi.
Definiamo poi i vettori u e v come indicato in figura.

Se si eseguono delle traslazioni del modulo base con i suddetti vettori si ottiene la costruzione mostrata nella figura sottostante in cui lo spazio lasciato libero dal modulo base è uguale al modulo stesso.

Le croci traslate sono ottenute con i comandi:
M2 = Trasla[M1, u]    M1' = Trasla[M1, v]    M2' = Trasla[M2, u]

Seguendo lo schema già visto possiamo definire una lista dinamica che costruisca una tassellazione di dimensione variabile.

Rportiamo il comando usato per la lista anche se non presenta differenze sostanziali da quelli visti.

Successione[Trasla[Successione[Trasla[M1, k u], k, 0, m - 1],
 h v], h, 0, n - 1]
Si può trovare il file all'indirizzo:


Un altro procedimento per costruire una tassellazione che, partendo da un modulo quadrato si può ottenere un poligono tale che, accostando le tessere, non si formino spazi vuoti.
Si tratta di uno schema di costruzione abbastanza semplice che lascia molte possibilità di dare sfogo alla fantasia perchè, al contrario dei precedenti è uno schema libero.

Si traccia un quadrato DEFG ed i soliti due vettori perpendicolari con la stessa lunghezza e direzione dei lati del quadrato.
Si prendono dei punti H, I ed J che non appartengono ai lati del quadrato e si costruiscono i punti H', I', J' traslati di u e v.
H' = Trasla[H, u]     I' = Trasla[I, v]     J' = Trasla[J,v]
H, I, J sono gli unici punti liberi della costruzione, possono essere spostati determinando forme diverse. I tre punti traslati li seguono nel movimento e le tessere che si formano restano sempre perfettamente accostabili. Naturalmente possono essere presi più di tre punti, sempre con la stessa logica e la bellezza delle figure dipende solo dalla fantasia di chi le costruisce.

Si definisce il poligono DIJEH'FJ'I'GH che può essere replicato per traslazioni successive determinando la tassellazione.
Anche in questo caso si possono costruire delle liste dinamiche in modo del tutto analogo al caso precedente.

Abbiamo lasciato in evidenza i tre punti liberi di colore rosso in modo che intervenendo su questi si può cambiare la forma delle tessere.

Per una tassellazione di questo tipo risulta gradevole l'uso di due colori che si alternano come in una scacchiera, però si può imporre un solo colore per tutti gli elementi di un a lista per cui si devono costruire più liste di colori diversi.

Il comando per la costruzione di una lista può essere costruito con la sintassi:
Successione[<Espressione>, <Variabile>, <Valore iniziale>,
 <Valore finale>, <Incremento>]
in cui l'ultima opzione che riguarda l'incremento da dare alla variabile è opzionale e può esere tralasciato se l'incremento è 1 come capita nella maggior parte dei casi.
Per costruire l'immagine sottostante può essere usato il comando:
L = Successione[Trasla[P1, k u], k, 0, 6,2]

In questo caso infatti i valori assegnati a k sono 0, 2, 4, 6 e pertanto gli elementi che verrebbero rappresentati da traslazioni per k dispari sono lasciate vuote.
Per occupare tali spazi il comando diventerebbe:
L = Successione[Trasla[P1, k u], k, 1, 6,2]
Ancora incremento 2 ma partendo da 1 quindi tutti i numeri dispari minori di 6

Mostriamo il modulo iniziale e le tre tessere adiacenti che devono essere replicate per traslazioni successive fino a formare la tassellazione.

La coppia di numeri rappresentata sulle tessere rappresentano il valore iniziale che devono avere le variabili k (la prima cifra) e h (la seconda cifra) per rappresentare i colori alternati.

I comandi usati per costruire le liste sono:
L00 = Successione[Trasla[Successione[Trasla[P1, k u], k, 0, m-1,2],
 h v], h, 0, n-1,2]
L10 = Successione[Trasla[Successione[Trasla[P1, k u], k, 1, m-1,2],
 h v], h, 0, n-1,2]
L01 = Successione[Trasla[Successione[Trasla[P1, k u], k, 0, m-1,2],
 h v], h, 1, n-1,2]
L11 = Successione[Trasla[Successione[Trasla[P1, k u], k, 1, m-1,2],
 h v], h, 1, n-1,2]

Ricordiamo, per chi avesse difficoltà a seguire questi ragionamenti che le tessere possono esere costruite una alla volta per semplice traslazione e poi ad ugnuna può venire assegnato un colore intervenendo sulle proprietà dell'oggetto.
Si può trovare il file all'indirizzo:

Un altro modulo a base quadrata è il seguente in cui, partendo da ABCD abbiamo un solo punto libero: E. Partendo da questo costruiamo in sequenza i punti F, G ed H con successive rotazioni in modo che al poligono M1 possa essere accostato, nella sua parte superiore un poligono uguale ruotato di 90° i cui profili coincidono.
Il comando per eseguire la rotazione ha la seguente sintassi
Ruota[ <Oggetto>, <Angolo>, <Punto> ]
in cui si indica l'oggetto da ruotare specificando l'angolo di cui deve essere ruotato e il punto rispetto a cui fare la rotazione.

Partendo da E per la costruzione dei punti si usano in sequenza i comandi:
F = Ruta[E, 90°, D]   G = Ruota[F, 90°, C]   H = Ruota[G, 90°, B]

Il modulo da replicare è così costruito:

Il modulo M10 è ottenuto ruotando di 90° M00 rispetto al vertice C in alto a destra del quadrato iniziale, e così di seguito anche gli altri, poi vengono assegnati i colori desiderati.
M10 = Ruta[M00, 90°, C]     M11 = Ruota[M10, 90°, C]
M01 = Ruota[M11, 90°, C]

La tassellazione può essere fatta procedendo a traslare un elemento per volta oppure con quattro liste che, rispetto a quelle viste sopra, hanno una caratteristica diversa perchè non devono replicare un solo elemento ma elementi uguali ma orientati in modo diverso.

Riportiamo i comandi:
L00 = Successione[Trasla[Successione[Trasla[M00, k u], k, 0, m - 1, 2], h v], h, 0, n - 1, 2]
L01 = Successione[Trasla[Successione[Trasla[M01, k u], k, 0, m - 1, 2], h v], h, 0, n - 1, 2]
L10 = Successione[Trasla[Successione[Trasla[M10, k u], k, 0, m - 1, 2], h v], h, 0, n - 1, 2]
L11 = Successione[Trasla[Successione[Trasla[M11, k u], k, 0, m - 1, 2], h v], h, 0, n - 1, 2]

In questo caso le variabili k e h partono sempre da 0 ed hanno un incremento di due unità e per fare in modo che i quattro elementi vengano sempre replicati in modo completo si può fare in modo che anche m ed n siano sempre pari e quindi anche per queste viene dato un incremento 2.
 Si può trovare il file all'indirizzo:


martedì 4 febbraio 2014

Tassellazione 1


Si parla di tassellazione (o pavimentazione) di un piano quando si riesce a ricoprire questo con una serie infinita di tasselli (o piastrelle) senza lasciare spazi vuoti.
Le tassellazioni sono usate fin dall'antichità per ricoprire e decorare superfici ottenendo degli ottimi effetti ed in alcune culture sono diventati una vera e proprie arte come i mosaici moreschi.

Lo studio della tassellazione del piano ha, dal punto di vista geometrico, un rilevante valore formativo: aiuta ad individuare e riconoscere la proprietà delle figure geometriche, a riconoscere alcuni invarianti per isometrie ad analizzare e risolvere alcuni tipi di problemi.
Per raggiungere certi obiettivi scolastici dobbiamo limitare il campo di studio a tassellazioni semplici di cui non sia tropo difficile studiare le proprietà geometriche lasciando agli artisti la creazione di effetti particolari.
Un ulteriore aspetto formativo riguarda l'uso di un software come GeoGebra per realizzare le composizioni usando le trasformazioni nel piano per evitare di disegnare una piastrella per volta come si dovrebbe fare con la matita.

Definizione:
Tutti gli elementi della tassellazione devono essere uguali, ogni elemento deve aderire perfettamente a quello vicino senza lasciare neanche il più piccolo spazio e non ci deve essere sovrapposizione tra gli elementi.
Perchè si possa fare una tassellazione occorre che i vertici delle figure vicine si dispongano in modo che la somma degli angoli sia di 360°.

Tassellazione con poligoni
Cominciamo quindi dai poligoni regolari che sono ampiamente usati nella piastrellazione dei pavimenti delle nostre case: triangolo equilatero, rettangolo o quadrato ed esagono regolare.

Come si vede dalle figura nel caso di triangoli e quadrati le disposizioni possono essere di vario tipo, basta far scorrere le file orizzontali, nel caso degli esagono invece la disposizione è obbligata.

Due fasci di rette parallele equidistanti tra loro determinano quadrati o parallelogrammi che formano una tassellazione molto semplice del piano.

Possiamo quindi stabilire che nel caso di parallelogrammi una tassellazione del piano è sempre possibile. Le forme di base appena viste sono semplici ed intuitive ed ogni volta che possiamo ricondurci a queste avremo la possibilità di fare una tassellazione

Caso del triangolo qualunque
La tassellazione è sempre possibile nel caso del triangolo perchè accostando due triangoli in modo opportuno si ottiene un parallelogrammo.
Dato un triangolo qualsiasi ABC, se si considera il punto A' simmetrico di A rispetto al punto medio M del lato BC si può costruire un triangolo BCA' che accostato ad ABC forma un parallelogrammo.
Si può anche dire che A'B'C' è simmetrico di ABC secondo una simmetria centrale di centro M in cui B' simmetrico di B rispetto ad M si sovrappone a C e C' simmetrico di C si sovrappone a B. Osserviamo che, nel caso di piastrelle per una pavimentazione, una faccia rifinita a l'altra grezza e quindi occorre avere due tipi di piastrelle perchè, pur essendo di uguale forma, risultano una capovolta rispetto all'altra.

Costruzione con GeoGebra
Per tassellare il piano con dei triangoli si parte da tre punti liberi A, B, C e si costruisce il triangolo T di vertici ABC, questi sono gli unici punti liberi della costruzione.
Poi, con una simmetria centrale, si costruisce il triangolo T' simmetrico di T rispetto al punto medio M del lato BC ottenendo un parallelogrammo che può essere replicato quante volte si vuole.
Definiamo una lista T1 = {T, T'} che ci permette di riferirsi al parallelogrammo come ad un unico oggetto. I parallelogrammi vicini sono ottenuti a partire da T1 con delle traslazioni.
Usando u = B – A come vettore di traslazione si ottiene il parallelogrammo accostato a destra ed usando v = C – A quello accostato sopra.
Per costruire il parallelogrammo a destra si usa il comando:
T2 = Trasla[T1, u]
Si può procedere con traslazioni successive usando anche lo strumento Traslazione della barra degli strumenti e costruire diversi parallelogrammi fino a ricoprire la superficie desiderata seguendo lo schema mostrato sotto.

 
T1' = Trasla[T1, v] T2' = Trasla[T2, v]
T3 = Trasla[T2, u] T3' = Trasla[T3, v]


Uso delle liste dinamiche
Di seguito vedremo come sia possibile creare delle liste dinamiche per eseguire la tassellazione con un solo comando.
Il primo parallelogrammo a destra si ottiene da T1 traslando di u (meglio dire 1 * u)
Il secondo di un vettore 2*u, il terzo 3*u e così di seguito

Tutte queste operazioni possono essere fatte con un unico comando che raggruppa diverse istruzioni separate tra loro da virgole:
Successione[ <Espressione>, <Variabile>, <Valore iniziale>, <Valore finale> ]

Nel nostro caso il comando divente:
Tk = Successione[Trasla[T1, Vettore[k u]], k, 0, 4]
<Espressione> è il comando che va eseguito un certo numero di volte: Trasla[T1, Vettore[k u]]
<varibile> è la lettera k che deve prendere tutti i valori compresi tra 0 e 4 e quindi traccia 5 parallelogrammi, il primo sovrapposto a quello iniziale in modo che resti evidenziato.

Il passo successivo è quello di traslare verticalmente rispetto al vettore v la 'striscia' costruita con il comando Tk, si tratta semplicemente di applicare a questa un comando analogo:
Th = Successione[Trasla[Tk, Vettore[h v]], h, 1, 3]
questa volta la variabile h parte da 1 perchè altrimenti sarebbe stata replicata la prima striscia senza alcun motivo.
Notiamo che se facciamo partire da 1 anche la variabile k il modulo originale rimane isolato, invitiamo il lettore a modificare il listato intervenendo sulle proprietà di Tk.

I comandi visti possono anche essere nidificati quindi, partendo dal modulo iniziale, possiamo creare una lista dinamica che costruisce tutta la tassellazione.
Il file si può trovare su:

Invece di replicare un numero fisso di volte il modulo iniziale abbiamo definito due slider nelle variabili m ed n definite solo per numeri interi.
Comando usato:
Tkh = Successione[
 Trasla[Successione[Trasla[T0, Vettore[k u]], k, 0, m], Vettore[h v]],
  h, 0, n]
Osserviamo che i caratteri azzurri corrispondono al comando usato per costruire Tk già incontrato e quindi costruisce una striscia orizzontale, unica differenza la presenza della variablie m controllata dallo slider. Quindi m determina il numero dei moduli replicati orizzontalmente.
I caratteri sottolineati rappresentano il comando che esegue le traslazioni verticali, il numero di tali comandi è controllato dalla variabile n che determina il numero di volte che la striscia orizzontale viene replicata.
Osserviamo che i valori di m ed n rappresentano il numero di volte che il parallelogrammo viene replicato, se si vuole che rappresenti il numero di parallelogrammi rappresentati il listato va modificato mettendo (m-1) al posto di m e (n-1) al posto di n.
Il triangolino in basso a sinistra è stato lasciato evidenziato, i suoi vertici sono gli unici punti liberi e modificando la loro posizione si modifica tutta la tassellazione.


Caso del quadrilatero generico
Dato un quadrilatero generico è sempre possibile tassellare il piano.
Dato un generico quadrilatero ABCD si costruisce il suo simmetrico rispetto al punto medio di un lato, si ottiene un esagono con i lati opposti uguali e paralleli.
Con tale esagono è possibile tassellare il piano, basta eseguire delle traslazioni di ABCD e di ADB'C' come mostrato in figura ed i lati che sono uguali e paralleli possono essere fatti combaciare.
Ovviamente la cosa è possibile anche se il quadrilatero è un trapezio, se questo è quadrilatero si può evitare anche di costruire il suo simmetrico e si procede come è stato fatto per il triangolo.

Costruzione con GeoGebra
Con la stessa tecnica è possibile ottenere una figura tassellante anche partendo da un generico quadrilatero, bisogna costruire il simmetrico rispetto al punto medio di uno dei due lati adiacenti all'angolo opposto all'angolo interno maggiore dell'angolo piatto.
Il file si può trovare su:

Sono stati lasciati ben evidenziati i vettori di traslazione che possono essere nascosti in seguito ed i valori di m ed n questa volta rappresentano il numero di tasselli che vengono mostrati.
Spostando i vertici del quadrilatero origine ABCD si possono ottenere diverse forme, si può anche fare in modo che il quadrilatero diventi concavo.

Caso dei pentagoni ed esagoni convessi
La tassellazione con pentagoni regolari non è possibile perchè l'angolo interno del pentagono è di 108° e, se accostiamo tre pentagoni per il loro vertice si forma una angolo di 324° mentre per avere una tassellazione come l'abbiamo definita l'angolo deve essere di 360°.
Il caso della tassellazione con pentagoni non regolari è possibile ed è anche interessante, si conoscono solo 14 tipi di pentagoni che risolvano il problema ed allo stato attuale non esiste la certezza che siano gli unici.
Per gli esagoni regolari, come si è visto la tassellazione è molto semplice, per esagoni con i lati opposti uguali e paralleli abbiamo visto il caso di due quadrilateri accostati, per il caso generico ne sono stati individuate tre tipi.

Per chi volesse avere informazioni sull'argomento consigliamo:

Si può dimostrare che per un numero superiore di lati la tassellazione non è possibile per poligoni convessi. Nel caso si prendano in considerazione poligoni concavi invece ci sono un numero infinito di possibilità.