Vedere la pagina principale del progetto per gli altri due documenti.
In ogni momento sono presenti in memoria:
Il diagramma di Voronoi si implementa con la classe Voronoi. Per i punti extra occorre definire una propria implementazione, ricordando che Java fornisce varie classi predefinite per gestire insiemi.
Per default l'interfaccia mostra i siti di Voronoi, le regioni di Voronoi
e i punti extra.
L'utente puo' scegliere di mostrare / nascondere
ciascuna di queste tre entita'.
E' importante differenziare la resa grafica dei siti e quella dei punti
extra.
A seconda dello stato dell'interfaccia, alcuni elementi possono
essere evidenziati (ad esempio quelli coinvolti nell'operazione
corrente) se lo si ritiene opportuno.
L'utente deve poter fare le seguenti operazioni.
Operazioni sull'insieme dei punti extra:
Operazioni sul diagramma di Voronoi:
L'animazione consiste nell'eseguire "a passi" l'aggiunta di tutti i punti extra al diagramma di Voronoi e l'eliminazione di tutti i siti dal diagramma di Voronoi.
Un passo coincide con l'inserimento / eliminazione di un singolo punto.
L'animazione puo' essere abilitata e disabilitata dall'utente.
Se l'animazione e' abilitata, allora dopo ogni passo viene mostrato il nuovo diagramma, fino al risultato finale. Se l'animazione e' disabilitata allora viene mostrato direttamente il risultato finale.
I passi dell'animazione possono essere comandati manualmente dall'utente (compiendo un'azione per eseguire il passo successivo) oppure procedere in automatico dopo un certo intervallo di tempo. L'interfaccia permette all'utente di scegliere tale intervallo.
In qualsiasi momento l'utente puo' interrompere l'animazione. Dopo averla interrotta puo' riprendere l'esecuzione (per inserire / eliminare i punti rimanenti) oppure abortirla (rinunciando ad inserire / eliminare i punti rimanenti).
Durante la sosta l'utente puo' cambiare la modalita' di comando dell'animazione (manuale o automatica) e l'intervallo di tempo usato nella modalita' automatica.
Non e' specificato in che modo l'utente deve interagire
(es. come si fa a selezionare il punto extra da inserire o
il sito da eliminare).
E non e' specificato se non in parte il feedback da rendere all'utente
(es. come si comunica all'utente l'avvenuta selezione del punto).
E non sono nemmeno specificate le sequenze di azioni necessarie
per compiere le varie operazioni (es. per inserire un punto extra devo
prima selezionare il punto e poi dire che lo voglio inserire oppure
prima dire che voglio inserire un punto e poi selezionare quale).
Tutto quanto non specificato fa parte della liberta' che avete nel progettare l'interfaccia.
Questa liberta' va gestita tenendo in considerazione i principi generali per la progettazione di interfacce utente (buona presentazione, efficace interazione, facilita' di apprendimento, comodita' d'uso ecc.).
Questo e' un progetto di interfacce utente. Pertanto, sara' tenuto conto non solo del fatto che tutte le funzioni richieste siano presenti nell'interfaccia, ma anche e di quanto facile e gradevole risulta l'uso dell'interfaccia stessa per l'utente.