Relazione del progetto di geometria computazionale

 

di

Dario Villa

 

LÝidea alla base di questo progetto ╦ quella di mostrare alcune caratteristiche di una superficie di Bezier. Essendo nato a scopo didattico, questo progetto ha diverse funzionalitř, ma la principale ╦ quella di calcolare in ogni punto della superficie, il sistema di riferimento locale al punto. La finestra in basso a sinistra rappresenta lo spazio U-V dove ╦ possibile, cliccando con il mouse, assegnare un valore ai parametri ýuţ e ývţ.

 

 

Tramite questi, viene individuato il corrispondente punto sulla superficie e vengono calcolati il vettore tangente rispetto a ýuţ,Ţ il vettore tangente rispetto a ývţ e il vettore normale nel punto, che formano il sistema di riferimento locale.

 

 

Vengono inoltre calcolati nel punto i valori della curvatura rispetto a ýuţ, della curvatura rispetto a ývţ, la curvatura di Gauss e la curvatura media. Tutti i valori calcolati vengono riportati nella finestra in basso a destra, la Info-View.

 

 

Per meglio comprendere il significato di tali valori e osservare come essi variano, ╦ possibile selezionare i punti di controllo della superficie e spostarli nello spazio per modificarne a piacere la forma.

 

 

 

Per facilitare tale operazione ╦ possibile ruotare, traslare e scalare la superficie per avere un controllo totale sulla visuale. Sono comunque disponibili quattro forme predefinite come esempi significativi.

 

 

Oltre al sistema di riferimento locale al punto, ╦ possibile visualizzare anche il piano tangente nel punto e cÝ╦ la possibilitř di aumentare o diminuire le sue dimensioni o di visualizzarlo in wireframe.

 

Come ultima opzione ╦ possibile visualizzare la griglia dei punti di controllo.

 

Dal punto di vista della computer grafica, il progetto mostra come costruire una superficie di Bezier di terzo grado. Si valuta la superficie in alcuni punti e si costruiscono strip di quadrati i cui vertici corrispondono ai punti calcolati. In questo modo si ottiene una visualizzazione di tipo SOLID. EÝ possibile passare alla modalitř WIREFRAME, in questo caso la superficie ╦ costruita disegnando strip di linee che passano per i punti valutati al posto di strip di quadrati.

 

 

Naturalmente maggiore ╦ il numero di punti considerati, maggiore ╦ la qualitř di visualizzazione. Nella Info-view ╦ riportato il numero di valutazioni della superficie, ed ╦ possibile aumentare o diminuire tale valore a piacere. Infine ╦ mostrato un metodo adottato nelle librerie grafiche Opengl per dare lÝimpressione di maggior dettaglio ad oggetti che avrebbero i contorni segmentati a causa del basso numero di valutazioni. La funzione che implementa tale metodo si chiama glShadeModel ed ╦ riportata anchÝessa nella Info-view.

 

 

Nel nostro caso, la superficie viene inizialmente disegnata considerando 11 valutazioni e si possono chiaramente distinguere le strip di quadrati che compongono la figura. Per ottenere una buona visualizzazione, ovvero dare lÝimpressione di una superficie perfettamente liscia, bisognerebbe aumentare tale valore almeno a 70. Questo porterebbe ad un significativo aumento del costo computazionale degli algoritmi di costruzione e ad un grave appesantimento della scena.

 

 

Utilizzando invece la glShadeMode (glShadeMode = GL_SMOOTH) si otterrebbe lo stesso risultato con solamente 30 valutazioni.

 

 

Per poter utilizzare il programma ╦ necessario scaricare sul proprio computer il progetto compatibile con il vostro sistema operativo:

 

Download sr_win32

Download sr_macos

 

Per un corretto funzionamento del programma installare le seguenti librerie:

 

Download GLUT

 

Il manuale utente contiene un elenco dei comandi utilizzati nel programma.