Esercitazione di recupero del corso di

Interazione Uomo-Macchina: Interfacce Grafiche


Modalita' di lavoro

A gruppi composti da non piu' di tre persone. I gruppi possono non essere gli stessi delle esercitazioni guidate. Inoltre e' possibile farla a casa, anche per conto proprio (non in gruppo). Per favore segnalatemi la composizione dei gruppi.

Data di consegna

Indice



Lavoro da svolgere

Realizzare un'interfaccia grafica per un'applicazione per la visualizzazione e modifica interattiva di un modello di superficie (terreno) basato su griglia regolare.

Descrizione dell'applicazione

L'applicazione lavora su dati altimetrici capionati su una griglia regolare di rettangoli: ad ogni nodo (i,j) della griglia e' associato un valore di quota z[i,j]. L'applicazione deve poter visualizzare tali dati in due modalita':
  1. in modalita' wireframe, sotto forma di un reticolo dove ogni punto (i,j,z[i,j]) e' unito mediante segmenti ai suoi vicini nei quattro punti cardinali, cioe' ai punti (i,j',z[i,j']) con j'=+-j e (i',j,z[i',j]) con i'=+-i.
  2. in modalita' solid, riempiendo ogni maglia della griglia con due triangoli. Ogni maglia quadrata definita da quattro nodi (i,j) (i+1,j) (i+1,j+1) (i,j+1) viene divisa in due triangoli tracciando una delle due diagonali, tali triangoli sono poi trasportati in 3 dimensioni aggiungendo i valori di quota z[i,j], z[i+1,j], z[i+1,j+1], z[i,j+1] ai loro vertici.
Inoltre l'applicazione deve permettere all'utente di selezionare un nodo (i,j) della griglia e cambiarne il valore di quota z[i,j]. L'applicazione ripercuote tale modifica mediante una qualche legge su tutti gli altri nodi della griglia, ottenendo un effetto di deformazione della superficie.

Funzionalita' dell'interfaccia

L'applicazione deve permettere di: L'interfaccia deve dare la possibilita' all'utente di compiere sulla scena le sequenti operazioni grafiche: La scena deve essere inizialmente visualizzata in 3D con un rapporto di scala tra quote ed x,y e con trasformazioni di vista e proiezione tali che la scena sia chiaramente e 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.

L'interfaccia deve dare la possibilita' all'utente di compiere sulla griglia operazioni di deformazione, nel modo seguente:



Materiale fornito

Viene fornita una classe Java Terreno che implementa le strutture dati e le funzioni dell'applicazione relative alla lettura e scrittura del terreno e alla sua modifica.

La classe e' contenuta nel file Java (gia' compilato) Terreno.class.

La classe Terreno e' cosi' strutturata.

Variabili

Metodi

Sono anche forniti alcuni file di input contenenti griglie che possono essere caricate dall'applicazione:



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

Il materiale puo' essere consegnato su dischetto o spedito per EMAIL all'indirizzo magillo@disi.unige.it.
Indicare chiaramente i nomi dei componenti del gruppo e l'elenco dei file.