Laboratorio di Grafica Interattiva A.A. 2002-3
Progetto finale
Mettiamo ora insieme (quasi) tutte le parti sviluppate nelle
otto esercitazioni guidate in un'unico programma
significativo.
Il programma permette di caricare uno o piu' solidi da file,
li mostrar nelle tre viste ortografiche e in vista prospettica,
permette di selezionarne uno, di
spostare, rotare, cambiarne le dimensioni del solido selezionato,
di cambiarne gli attributi di visualizzazione (es. il colore),
di cambiarne la forma (spostando le facce).
Questo documento non contiene le specifiche complete, ma per molti dettagli
fa' riferimento ai testi delle varie esercitazioni guidate.
Per i punti piu' delicati e' indicato il numero dell'esercitazione.
Organizzazione della finestra
La finestra e' divisa in tre parti principali
(come nell'esercitazione 2): area
menu', area messaggi e area di lavoro, quest'ultima
divisa a sua volta in quattro parti destinate ad ospitare
rispettivamente la vista prospettica e le tre viste ortogonali
(come nell'esercitazione 5).
Area menu'
L'area menu' e' cosi' chiamata impropriamente. In realta'
contiene sia sotto-aree che si comportano come menu',
sia sotto-aree che si comportano come bottoni.
In tutto abbiamo 6 sotto-aree:
-
Un'area "file" su cui e' attivo un menu' pop-up
con tre voci corrispondenti a
- caricamento di un nuovo solido
- scaricamento del solido selezionato
- uscita dal programma
La gestione del caricamento e dello scaricamento avviene come
nell'esercitazione 5 - tappa di compito.
-
Un'area "attributi" su cui e' attivo un menu' pop-up
con quattro voci corrispondenti a:
- impostazione del point size
- impostazione della line width
- impostazione del polygon mode (fill, line, point)
- impostazione del colore (tra un insieme fissato)
L'impostazione di point size e line width e' gestita come
nell'esercitazione 2 - terza tappa.
L'impostazione del polygon mode e del colore avviene da sottomenu'
(come nell'esercitazione 1 - quinta tappa).
-
Un'area "assi" che si comporta come un bottone e permette
di mostrare o nascondere gli assi cartesiani e il pavimento.
-
Un'area "luci" su cui e' attivo un menu' pop-up con cue voci
corrispondenti a:
- attivazione / disattivazione della sorgente luminosa
fissa rispetto all'osservatore
- attivazione / disattivazione della sorgente luminosa
fissa rispetto alla scena
-
Un'area "tasti + e -" che si comporta come un bottone e
permette di scegliere l'effetto della pressione dei tasti suddetti:
- zoom dell'oggetto selezionato
- zoom di tutta la scena (tutti gli oggetti e anche gli assi)
- spostamento della faccia selezionata
-
Un'area "mouse" che si comporta come un bottone e
permette di scegliere l'effetto dello spostamento del mouse:
- traslare l'oggetto selezionato
- ruotare l'oggetto selezionato
Le varie sotto-aree sono decorate con icone, oltre a portare il
titolo (stringa) corrispondente.
Area messaggi
L'area messaggi informa sull'ultima operazione eseguita:
- dopo aver caricato un solido deve mostrare il nome del file
da cui e' stato caricato
- dopo aver impostato un attributo, mostra il nuovo valore
dell'attributo
- eccetera...
Inoltre simula un campo di input scrivibile per permettere
all'utente di
- immettere il nome del file da cui caricare il nuovo solido
- immettere il nuovo valore di point size
- immettere il nuovo valore di line width
Area di lavoro
L'area di lavoro, a sua volta suddivisa nelle quattro viste,
mostra i solidi correntemente caricati e, se attivati, mostra gli
assi cartesiani e il pavimento della scena.
In ciascuna delle quattro sotto-aree viene sempre mantenuta la
aspect ratio della scena, quando l'utente cambia le dimensioni
della finestra.
Gli assi sono disegnati tratteggiati, il pavimento a quadretti.
Assi e pavimento emettono luce propria indipendentemente
delle sorgenti luminose (come nell'esercitazione 8 - prima tappa).
Ciascun solido e' colorato di un colore unico.
I solidi sono illuminati da due sorgenti luminose
(come nell'esercitazione 8 - tappa di compito):
- una fissa rispetto all'osservatore
- una fissa rispetto alla scena
Il solido selezionato e la faccia selezionata
sono evidenziati in modo opportuno.
Interazione
In qualsiasi area si trovi il mouse, la pressione dei
tasti "q", "Q" e del tasto ESC provoca la terminazione
del programma.
In tutte e quattro le viste:
- il click del mouse su un solido seleziona il solido
e seleziona la faccia cliccata
(ved. esercitazione 7 - seconda tappa)
- il click del mouse non su un solido provoca la disselezione
- a seconda di come impostato nella menu' area,
la pressione del tasto "+" o "-"
- ingrandisce o rimpicciolisce il solido selezionato
(se esiste selezione)
- ingrandisce o rimpicciolisce l'intera scena
- sposta la faccia selezionata verso fuori o verso dentro il solido
(se esiste selezione), ved. esercitazione 7 - tappa di compito.
Gli effetti dell'azione eseguita in una vista si ripercuotono anche
sulle altre viste.
Nella vista prospettica il moto del mouse a bottone premuto ruota
l'intera scena
-
se il moto del mouse e' orizzontale, attorno all'asse perpendicolare
al pavimento della scena
-
se il moto del mouse e' verticale, attorno ad un asse
orizzontale rispetto alla finestra
In tutte e tre le viste ortografiche il moto del mouse a bottone premuto,
a seconda di come impostato nell'area di menu',
ruota o trasla l'oggetto selezionato (se esiste selezione).
-
In caso di rotazione,
se il mouse si muove verso destra o verso l'alto
ruota in senso antiorario rispetto all'asse
coordinato uscente dalla finestra,
altrimenti ruota in senso orario
(come nell'esercitazione 7 - prima tappa).
-
In caso di traslazione, trasla nella direzione in cui
e' stato mosso il mouse.