Primo progetto di Grafica Interattiva A.A. 2003-4
Grafica bidimensionale
Scopo
Realizzare un programma per il disegno basato su poligoni.
Descrizione generale
Un poligono e' definito da una lista di vertici e puo' essere
disegnato tracciando una o piu' delle seguenti cose:
- l'interno del poligono pieno
- il contorno del poligono
- i vertici del poligono
Ciascuna delle tre cose ha i suoi attributi pittorici:
colore per tutte (ciascuna il suo: es. interno giallo,
contorno blu e vertici verdi),
spessore per le linee, grandezza per i punti.
Un poligono puo' avere anche meno di tre vertici:
in questo caso non puo' essere tracciato l'interno.
Puo' avere un solo vertice: in questo caso possono essere
tracciati solo i vertici (il vertice).
Sui poligoni sono possibili varie operazioni:
-
creare un nuovo poligono immettendone i vertici con il mouse
-
cancellare vertici da un poligono cliccandovi sopra
-
spostare vertici cliccandovi sopra e trascinando (drag)
-
aggiungere vertici cliccando all'interno di un lato, che in questo
modo si divide, e trascinando il nuovo vertice alla posizione voluta
-
ruotare, scalate, traslare un poligono
-
cancellare un poligono
-
portare un poligono sopra / sotto gli altri (serve a determinare
il poligono visibile in caso di piu' poligoni disegnati sulla stessa
parte di piano)
-
e naturalmente cambiarne gli attributi pittorici
Inoltre il programma permette di
mostrare gli assi cartesiani,
mostrare una griglia quadrettata per guidare il disegno,
traslare o scalare (pan e zoom) l'intera scena,
cambiare il colore di sfondo.
Specifiche dettagliate
La finestra e' divisa in due zone: area toolbar e area grafica.
Nell'area grafica avviene il disegno.
L'area toolbar simula una serie di bottoni radio per la scelta
della modalita' di funzionamento correntemente attiva.
Modalita' di funzionamento
Le modalita' di funzionamento sono tre: normale
(default), inserimento, modifica. Per ogni modalita' e' presente
un "bottone" sulla toolbar.
Le icone dei "bottoni" devono essere pixmap.
Non e' indispensabile che sia una "figura", potete usare anche
una scritta fatta con qualche font non fornita da Glut.
Ciascuno dei "bottoni" ha due icone: una per quando e' attivo e
una per quando non lo e' (puo' cambiare semplicemente il colore).
In qualsiasi momento esattamente un bottone e' attivo
(inizialmente quello della modalita' di default).
Il click su un bottone provoca
l'attivazione di questo bottone e la disattivazione di quello
che era attivo precedentemente.
In modalita' normale sono possibili in area grafica le seguenti
interazioni:
-
Tasto sinistro del mouse:
Su un poligono seleziona il poligono
(e disseleziona il poligono precedentemente selezionato se esiste).
Sullo sfondo disseleziona il poligono selezionato (se esiste).
-
Tasto "r" o "R":
Se e' selezionato un poligono lo ruotano di 90 gradi attorno al suo
baricentro (nel verso che volete).
-
Tasti freccia (pan):
Se e' selezionato un poligono lo traslano nella direzione della freccia.
Altrimenti traslano tutta la scena.
-
Tasti "+" e "-" (zoom):
Se e' selezionato un poligono lo scalano (tenendo fermo il suo baricentro)
ingrandendolo o riducendolo di un fattore opportuno.
Se nessun poligono e' selezionato scalano tutta la scena.
I fattori per ingrandimento e riduzione devono essere l'uno inverso
dell'altro (in modo che le due operazioni si annullino a vicenda),
es: 0.5 e 2 oppure 0.8 e 1.25.
-
Menu' pop-up:
Se esiste un poligono selezionato, il menu' presenta le voci:
porta sopra, porta sotto, cancella,
mostra interno, mostra contorno, mostra vertici, attributi.
Le ultime quattro voci sono sotto-menu'.
Il sotto-menu' per attributi e' descritto piu' avanti;
gli altri hanno due voci per scegliere si o no.
Se nessun poligono e' selezionato, il menu' presenta le voci:
mostra assi, mostra griglia, colore di sfondo.
Le prime due hanno sotto-menu' per scegliere si o no;
la terza ha sotto-menu' con un insieme
prefissato di colori da cui scegliere.
-
Il sotto-menu' attributi ha come voci:
colore interno, colore bordo, colore vertici,
spessore bordo, dimensione vertici.
Le tre voci relative al colore hanno sotto-menu' con un insieme
prefissato di colori da cui scegliere.
Le voci relative a spessore e dimensione hanno sotto-menu' con un insieme
prefissato di valori (es: 1,2,3...).
La modalita' inserimento permette all'utente di creare nuovi
poligoni.
L'entrata in modalita' inserimento inizializza un nuovo poligono
in costruzione, finora senza vertici.
-
Tasto sinistro del mouse: aggiunge al poligono in costruzione un nuovo
vertice collocato alla posizione del click.
-
Tasto destro del mouse: conclude il poligono in costruzione,
inizializza un nuovo poligono in costruzione.
- Tasto "ESC" oppure uscita dalla modalita' inserimento:
elimina il poligono in costruzione.
Al nuovo poligono costruito vengono dati attributi di default
(che devono essere sensati).
La modalita' modifica permette all'utente di cambiare la
geometria di un poligono gia' esistente.
-
Tasto sinistro del mouse:
su un vertice seleziona il vertice
(e disseleziona il vertice precedentemente selezionato se esiste);
sull'interno di un lato inserisce un vertice al punto cliccato
e seleziona tale vertice (e, come sopra, disseleziona... se...);
sullo sfondo o all'interno di un poligono disseleziona il vertice
precedentemente selezionato (se esiste).
-
Tasto "BACKSPACE": elimina il vertice selezionato (se esiste)
-
Spostamento del mouse (drag): sposta il vertice selezionato
(se esiste) facendo si' che la sua posizione segua quella del mouse
Vedere anche
Suggerimenti
Informazioni sulla consegna (scadenza,
materiale da consegnare)