Capitolo 1 Fasi del lavoro


1.1 Primi prototipi

Dopo la visione del video sopracitato nel mese di luglio 2019, ho realizzato il primo prototipo dell’animazione principale in JavaScript seguendo alcuni tutorial di The Coding Train. A dicembre dello stesso anno ho poi riscritto il precedente prototipo in Java e ne ho ampliato le funzionalità. Ciò mi ha permesso di familiarizzare con i vari algoritmi impiegati nella generazione delle informazioni utili alla visualizzazione dell’animazione e con la loro implementazione.


1.2 Ricerca teorica

Già nel mese di dicembre 2019 mi ero approcciato allo studio della trasformata di Fourier e di una sua applicazione alla compressione delle immagini con il metodo JPEG lossy - basato sulla trasformata discreta del coseno - con lo scopo di produrre un trittico di poster sull’argomento, parte della prova di esame del corso di Analisi Matematica 3.

La fase di ricerca teorica vera e propria ha avuto inizio nel mese di marzo 2020 e, su indicazione del mio relatore Prof. Paolo Boggiatto, ha riguardato principalmente lo studio approfondito di alcune sezioni del libro Fourier Analysis and Applications di C. Gasquet e P. Witomski: nello specifico, il capitolo II - i segnali periodici e la serie di Fourier -, la lezione 8 del capitolo III - la trasformata discreta di Fourier - e le lezioni 17, 18 e 19 del capitolo VI - la trasformata di Fourier di funzioni integrabili, la trasformata inversa e lo spazio \(\mathcal{S}(\mathbb{R})\).

La questione centrale della tesi, alla base del funzionamento dell’animazione, riguarda la possibilità di scrivere una funzione \(f: \mathbb{R} \longrightarrow \mathbb{C}\) periodica di periodo \(a\) come \[f(t)=\sum_{n=-\infty}^{+\infty}c_{n}e^{2\pi in \frac{t}{a}} \ ,\] dove \(c_n \in \mathbb{C}\) e \(n \in \mathbb{Z}\), sotto minime ipotesi sulla funzione \(f\).

Inoltre, durante lo sviluppo del software, si è rivelato utile affrontare il tema delle curve di Bèzier, in particolare delle polybézier - ovvero di una curva di Bèzier continua definita a tratti. Per potenziare le mie conoscenze in materia, ho fatto uso del libro A Primer on Bézier Curves, disponibile online, che mi ha fornito le basi necessarie per manipolare tali oggetti da un punto di vista informatico.

Prima della fase di programmazione si è poi resa necessaria una ricerca degli strumenti informatici più adatti. Una discussione degli strumenti adottati e del loro impiego è consultabile al capitolo dedicato.


1.3 Animazioni

Terminata la raccolta e lo studio delle informazioni necessarie, ha potuto avere inizio la programmazione delle animazioni in maniera più accurata rispetto ai primi prototipi. Il loro sviluppo è avvenuto in JavaScript, facendo ampio uso delle librerie open source p5.js, per il creative coding, e complex.js, per la gestione dei numeri complessi. Ciò ha permesso, a differenza di un semplice video, di rendere le animazioni interattive, andando così a potenziare il legame con lo spettatore che si trasforma quindi in utente attivo.

L’obiettivo delle animazioni è quello di agevolare la comprensione dei concetti teorici tramite una loro visualizzazione immediata e metterne in evidenza le sfaccettature più nascoste, andando ad affiancare ed assistere l’ingegno e le capacità immaginative dei loro fruitori.

Molta attenzione è stata riposta nella loro estetica, in quanto ritengo che l’aspetto artistico non sia affatto secondario al contenuto, ma piuttosto funzionale a quest’ultimo, poiché in grado di avvicinare e coinvolgere lo spettatore-utente instaurando una connessione emotiva e sensoriale più forte.
La filosofia alla base di questo approccio deriva sicuramente dalla visione artistica del video originale. Tuttavia, è stata ampiamente influenzata anche dagli Elementi di Euclide a colori, ovvero un’edizione del celebre libro di geometria in cui simboli e figure colorate sostituiscono le lettere, e dal pensiero del suo autore, Oliver Byrne, che ho avuto modo di apprezzare durante il corso di Storia della Matematica Antica e Moderna.

Ho infine curato l’accessibilità, ovvero la facilità di utilizzo, e la portabilità, cioè la corretta visualizzazione e fruizione su diversi tipi di dispositivi, principi chiavi per garantire all’utente un’esperienza fluida e priva di ostacoli o barriere di carattere tecnico.


1.4 Presentazione

La presentazione è stata realizzata con Reveal.js, un framework open source per presentazioni HTML a cui ho apportato diverse personalizzazioni.
Ciò mi ha permesso di integrare perfettamente (ovvero seamlessly in inglese) le animazioni nell’ambiente della presentazione, senza richiedere all’utente operazioni aggiuntive. Inoltre, il file HTML può essere visualizzato da un’ampia gamma di dispositivi tramite un qualsiasi browser e le ridotte dimensioni del file lo rendono ideale per la distribuzione online.

La filosofia che mi ha guidato nella creazione delle slide è la stessa discussa nel precedente paragrafo: accessibilità e piacevolezza estetica hanno costituito il fondamento su cui sviluppare il contenuto e il mezzo con cui esaltarlo, ma senza in alcun modo prevaricarlo. In tal senso, diversi accorgimenti sono stati adottati per affinare l’esperienza dell’utente finale.

Nel capitolo successivo verrà fornito un commento di carattere teorico alla presentazione.