Spiegazioni
dell'esercitazione del 28 Ottobre 2005
Scopo dell’esercitazione:
scopo dell’esercitazione è di completare ed animare un versione stilizzata ma
abbastanza completa di una mano con tutti i punti di snodo principali.
Nota bene: Tutte le operazioni
di disegno e di modifica delle matrici devono (preferibilmente) essere
effettuate nella Display Function, chiamata display nel nostro caso.
Nelle altre funzioni, dovete soltanto cambiare i valori dei parametri che
vengono usati dalla Display Function.
Cose da fare:
1) Copiate in una vostra directory il file mano.c
contenuto nella directory del corso con l’esercitazione di oggi
2)
Avviate il
Visual C++, caricate il file mano.c, compilatelo ed eseguitelo.
Verranno visualizzati i seguenti elementi:
- il palmo della mano (blu);
- un pollice (rosso);
- un dito (verde);
- gli assi cartesiani: x (rosso), y (verde), z (blu);
3) Analizzate il codice di mano.c e cercate di
comprenderne il funzionamento. Partite dalla funzione display e leggete tutte le funzioni che vengono
invocate per disegnare i vari oggetti con le relative componenti;
4) Modificate il file mano.c componendo la mano dalle
primitive palmo, pollice e dito. Usate lo schema già scritto nella funzione
mano. Si deve posizionare il pollice vicino al palmo e poi si deve invocare
quattro volte la funzione dito
cambiando ogni volta la posizione in modo opportuno.
5) Realizzare l’animazione che a partire dalla mano
chiusa (tutti gli angoli delle falangi = 90.0) apre la mano un dito per volta
contando fino a 5. Per fare questo esaminate il funzionamento di glutTimerFunc e della relativa callback temporizzato
6) Inserite una seconda mano e realizzate
l’animazione che a partire da entrambi le mani chiuse (tutti gli angoli = 90.0)
apre un dito per volta contando fino a 10.
Documentazione: Tutta la
documentazione su OpenGL è disponibile nella directory del corso. Questa contiene i tre files:
· glspec15.pdf
· glu1.3.pdf
· glut-3-spec.pdf