Corso di

Interazione Uomo-Macchina: Interfacce Grafiche



Esercitazione AUTUNNALE di laboratorio

Data di consegna: 7 ottobre 1998

Lavoro da svolgere

Realizzare un'interfaccia grafica per un'applicazione che visualizza e manipola files contenenti istogrammi tridimensionali.

Un istogramma tridimensionale e' un insieme di prismi retti a base poligonale. Le basi inferiori dei prismi giacciono tutte sul piano z=0, e sono tra loro disgiunte (o al piu' si toccano lungo i contorni). Ciascun prisma ha una certa altezza e un certo colore. Ogni file contiene un istogramma 3D, composto da uno o piu' prismi, ognuno specificato da:

Il numero di prismi contenuti e' indicato in testa al file.

La sintassi precisa del file e' data dalla seguente grammatica:

I separatori nel file possono essere spazi bianchi, tabulazioni, ritorni a capo, in numero qualsiasi e anche mischiati fra loro.

L'applicazione permette di:

Operazioni disponibili sui prismi: Note:
Inizialmente, tutti i prismi saranno visualizzati per default in modalita' solid (flat shading).
Per poter compiere operazioni su un singolo prisma, occorre un meccanismo che permetta all'utente di selezionare un prisma. Il modo piu' semplice e' dare ad ogni prisma un "nome" e permettere all'utente di selezionare il nome del prisma su cui vuole compiere le operazioni. E' importantissimo dare all'utente un feedback che gli mostri visivamente quale prisma ha selezionato (per es. evidenziandolo con un colore piu' intenso, marcandone il contorno, facendolo lampeggiare, o altro espediente).

Operazioni grafiche sulla scena:

La scena deve essere inizialmente visualizzata in 3D con trasformazioni di vista e proiezione tali che la scena sia completamente visibile e non troppo "lontana" rispetto all'osservatore. Poiche' e' prevista la possibilita' di visualizzare oggetti in modalita' solid, dovranno anche usate una o piu' luci per l'illuminazione.

Materiale fornito

Vengono forniti alcuni file di input come esempio, e uno "scheletro" di programma, che implementa gia' le parti relative a: Il sorgente e' startbis.c, il makefile e' il solito.
Trovate qui la spiegazione di come e' organizzato il codice.

I files di input finora disponibili sono: scala.ist, torta.ist.



Raccomandazioni

Questo e' un progetto di interfacce grafiche. Pertanto, sara' tenuto conto non solo del fatto che tutte le funzioni richieste siano presenti nell'interfaccia sviluppata, ma anche e di quanto facile e gradevole risulta l'uso dell'interfaccia stessa per l'utente.

Materiale da consegnare