Corso di

Interazione Uomo-Macchina: Interfacce Grafiche



Esercitazione di laboratorio

Modalita' di lavoro

A gruppi. I gruppi possono non essere gli stessi delle esercitazioni guidate. I gruppi devono essere composti preferibilmente da due, e assolutamente da non piu' di tre persone. I gruppi da tre persone sono tenuti a svolgere una parte in piu', come indicato sotto. E' possibile farla a casa, anche per conto proprio (non in gruppo), anche in questo caso segnalatemi la cosa.
Raccomando di segnalarmi le variazioni nei gruppi.

Data di consegna

9 giugno 2000

Indice



Lavoro da svolgere

Realizzare un'interfaccia grafica per un "gioco delle costruzioni" virtuale.

Descrizione del gioco

In questo gioco l'utente ha a disposizione una serie di "formelle" diverse che puo' collocare in uno spazio di lavoro.

Lo spazio di lavoro e' idealmente strutturato come una griglia tridimensionale. Le maglie della griglia sono cubi con facce parallele ai piani coordinati.

Ogni formella occupa un certo numero di cubi della griglia: per esempio, una formella ad "L" occupa tre cubi. Una maglia cubica della griglia puo' essere vuota, oppure essere occupata da una sola formella.

La figura mostra una possibile configurazione dello spazio di lavoro:

La gamma delle formelle che l'utente puo' collocare e manovrare nello spazio di lavoro e' predefinita. Si hanno i seguenti tipi di formelle:

  1. formella singola che occupa un cubetto
  2. formella doppia che occupa due cubetti affiancati
  3. formella a "L" che occupa tre cubetti
  4. formella a "T" che occupa 4 cubetti
  5. formella "a ponte" che occupa 5 cubetti

Le formelle sono visualizzate come oggetti solidi a facce piene, soggette ad illuminazione e rese in modalita' "flat shading" (tutti i vertici di una faccia hanno la stessa normale, perpendicolare alla faccia).

Per ciascun tipo di formella l'applicazione stabilisce, fra tutti i cubi che la costituiscono la formella, un cubo di aggancio, che viene usato come perno per ruotare la formella (ved. dopo).

La griglia di lavoro ha dimensione NxNxN, con N > 3.
L'utente puo' collocare nello spazio di lavoro fino a K formelle contemporaneamente, con K > 1.

Funzionalita' dell'interfaccia

L'interazione con l'utente avviene in questo modo:
  1. Inizialmente lo spazio di lavoro e' vuoto (nessuna formella presente).
  2. In qualsiasi momento, purche' il numero di formelle presenti non sia gia' il massimo consentito, l'utente puo' aggiungere una formella scelta fra quelle disponibili.
    La nuova formella viene inizialmente collocata dall'applicazione in una posizione arbitrariamente scelta, non gia' occupata da altre formelle. La nuova formella viene visualizzata in un colore diverso da quello di tutte le altre formelle presenti. La nuova formella viene selezionata come la "formella corrente".
  3. L'utente puo' spostare la formella corrente traslandola in una delle due direzioni lungo gli assi coordinati. Ad ogni spostamento, la lunghezza del vettore di traslazione e' pari ad una maglia della griglia.
    Durante i movimenti di traslazione, la formella non deve andare ad occupare cubi della griglia gia' occupati da altre formelle.
  4. L'utente puo' ruotare la formella corrente su se stessa secondo un asse di rotazione parallelo ad uno degli assi coordinati e passante per il baricentro del suo cubo di aggancio. Ad ogni rotazione, l'angolo di rotazione e' pari a 90 gradi.
    Durante i movimenti di rotazione, la formella non deve andare ad occupare cubi della griglia gia' occupati da altre formelle.
  5. L'utente puo' cancellare la formella corrente eliminandola dallo spazio di lavoro.
  6. In qualsiasi momento l'utente puo' selezionare una delle formelle presenti come "formella corrente" (per poi eseguire su di essa le operazioni di cui ai punti 3,4,5).
Inoltre l'interfaccia deve fornire all'utente funzionalita' che facilitino l'interazione, almeno le seguenti:

Parametri N e K

Il numero N che definisce la dimensione della griglia di lavoro e il numero K massimo di formelle collocabili nello spazio di lavoro sono stabiliti dall'utente una sola volta all'inizio della sessione di lavoro.

Per esempio, si puo' prevedere che vengano immessi da command line oppure l'interfaccia puo' partire in una configurazione tale che all'inizio l'unica operazione consentita e' l'immissione di questi due parametri.



Materiale fornito e suggerimenti

Materiale fornito

Viene fornito un file che implementa le strutture dati e le funzioni dell'applicazione relative alla gestione delle formelle e della griglia: Nel file esempio.c trovate un "main" che mostra le operazioni eseguite in una possibile sessione di lavoro.

Suggerimenti

Si possono recuperare varie parti di programmi gia' sviluppati nelle esercitazioni guidate. Per esempio:

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

L'indirizzo di posta elettronica a cui spedire e' magillo@disi.unige.it.
Indicare chiaramente nel messaggio il nome dei componenti del gruppo e l'elenco dei file inviati.

Parte aggiuntiva per gruppi da tre persone

I gruppi da tre persone devono fornire anche la possibilita' per l'utente di cambiare il colore della formella corrente selezionando le tre componenti RGB.