Corso di Interfacce Utente - A.A. 2002-2003

PROGETTO DI LABORATORIO - DOCUMENTO 0

Descrizione dell'applicazione e requisiti dell'interfaccia

L'applicazione e' di (simil-)chimica.

Scopo: Realizzare un'interfaccia per un simulatore del comportamento di un insieme di particelle.

L'applicazione

Abbiamo un insieme di particelle che si muovono in un'ambiente di lavoro. Ogni particella ha un raggio e un vettore velocita'.

Consideriamo una rappresentazione bidimensionale. L'ambiente di lavoro e' un rettangolo, le particelle sono cerchi.

Durante il moto, due particelle possono entrare in collisione. Allora (a seconda del tipo di particelle coinvolte) puo' accadere una delle seguenti cose:

Il comportamento all'urto e' dettato da regole che vengono specificate dall'utente.
Inoltre una particella puo' urtare il bordo dell'ambiente di lavoro. In quel caso viene respinta.

L'utente puo' variare la temperatura dell'ambiente di lavoro, che incide sull'intensita' delle velocita' delle particelle.
E puo' specificare attrattori, cioe' forze che modificano la direzione delle velocita' attraendole verso un punto.

Dati e operazioni forniti dal programma applicativo

Il programma che implementa l'applicazione viene dato a scatola chiusa e contiene una serie di strutture dati ed operazioni che l'interfaccia puo' utilizzare, senza modificarle.

Dati

Il programma applicativo contiene al suo interno le strutture dati per rappresentare:

Un tipo di particella e' descritto da:

Il raggio deve essere compreso tra 5 e 20 unita' di lunghezza. L'intensita' della velocita' (unita' di lunghezza percorse nell'unita' di tempo) deve essere compresa tra 0 e il raggio. L'incremento deve essere compreso tra 0 e un decimo del raggio.

L'esito dell'urto di un tipo di particella con un altro descrive che cosa succede alla particella, e puo' essere uno fra i seguenti valori: repulsione, fusione, scissione.
Per difetto (cioe' se non specificato diversamente dall'utente), l'esito dell'urto e' repulsione.

Una singola particella e' descritta da:

La storia descrive che cosa e' successo al passo precedente della simulazione, e puo' essere: nulla (se la particella non ha subito urti), bordo (se la particella ha urtato il bordo dell'ambiente di lavoro), oppure un esito d'urto (repulsione, fusione, scissione, se la particella ne ha urtata un'altra).

L'ambiente di lavoro e' descritto da:

La temperatura deve essere compresa tra -50 e 50 gradi.
Sono ammessi al piu' 10 tipi di particelle.

Funzioni

Il programma applicativo fornisce funzioni per:

Funzionalita' dell'interfaccia

L'interfaccia deve usare il programma applicativo a scatola chiusa, senza modificarli. Deve fornire all'utente strumenti per compiere le seguenti operazioni:

  1. Immettere manualmente o caricare da file nuovi tipi di particelle. Visualizzare i tipi di particelle presenti. Cancellare o modificare tipi di particelle.

  2. Specificare manualmente o caricando da file esiti d'urto fra tipi di particelle presenti (incluso l'urto fra due particelle dello stesso tipo). Visualizzare gli esiti d'urto, modificarli.

  3. Modificare dimensioni e temperatura dell'ambiente di lavoro. Aumentare le dimensioni e' sempre possibile, diminuirle non e' permesso nel caso vi siano particelle che vengono tagliate fuori dall'ambiente ridotto. Questo caso va gestito in modo opportuno.

  4. Agire sull'insieme di particelle presenti nell'ambiente di lavoro. L'utente puo' riempire l'intero ambiente di una miscela di particelle di fino a tre tipi diversi (fra quelli presenti) in percentuali assegnate. Puo' riempire anche sotto-aree dell'ambiente di lavoro. Puo' inserire particelle singole in punti specificati. Puo' cancellare particelle individualmente oppure specificando sotto-aree che devono essere svuotate.

  5. Visualizzare la situazione corrente delle particelle (posizioni e, a richiesta dell'utente, velocita'). Spostare una particella, modificare la direzione della sua velocita'.

  6. Modificare le direzioni delle velocita' di tutte le particelle presenti (o di quelle di un dato tipo) mediante un attrattore. L'attrattore puo' essere un punto all'interno dell'ambiente di lavoro oppure un lato dell'ambiente di lavoro.

  7. Eseguire la simulazione in animazione continua (con velocita' controllabile dall'utente), con possibilita' per l'utente di stabilire pause a comando oppure pause automatiche ad intervalli di tempo stabiliti (ogni tot unita' di tempo).

Tutte le operazioni possono essere eseguite all'inizio o durante qualsiasi pausa della simulazione. La simulazione deve poi riprendere dalla situazione in cui si era fermata, con le modifiche apportate dall'utente.
La visualizzazione deve riflettere in ogni momento lo stato corrente della simulazione.