Spiegazioni dell'esercitazione del 8 Febbraio 2007

 

Docente: Prof. Marco Schaerf
http://www.dis.uniroma1.it/~schaerf


Tutor Roma: Ing. Marco Fratarcangeli

http://www.dis.uniroma1.it/~frat >> didattica >> esercitazioni | tesine

 

Tutor Latina: Andrea Carpene

 

Scopo dell’esercitazione: scopo dell’esercitazione è di prendere confidenza con i principali meccanismi di interazione ed animazione di OpenGL e di GLUT attraverso la modifica e completamento di un semplice programma che visualizza ed anima una mano.

Nota bene: Tutte le operazioni di disegno e di modifica delle matrici devono (preferibilmente) essere effettuate nella Display Function, chiamata draw nel nostro caso. Nelle altre funzioni (ad esempio, animation), dovete soltanto cambiare i valori dei parametri che vengono usati dalla Display Function.

 

Cose da fare:

 

Modificate il codice 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.

 

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 animation

 

Commentare tutte le invocazioni di glutTimerFunc e ad inserire il codice di animation dentro il corpo della funzione idle. Quest’ ultima funzione viene richiamata ripetutamente ogni volta che non ci sono eventi pendenti da processare.

Cosa accade? Perchè?

 

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.

 

Modificare la funzione keyboardDown in modo da fermare e far ripartire l’ animazione ogni volta che viene premuta la barra spaziatrice.

 

Documentazione: Tutta la documentazione su OpenGL / GLUTè disponibile nella directory  del corso. Questa contiene i tre files:

glspec15.pdf

glu1.3.pdf

glut-3-spec.pdf