Screensaver

Progetto di Luca Pucacco

Corso di Geometria Computazionale 2008/2009

Teoria

Per sviluppare il progetto Screensaver sono state utilizzate le curve di Bezier modificate da alcune trasformazioni affini del tipo , in particolar modo rotazioni e omotetie.

Curve di Bezier

Per disegnare le curve di Bezier nelle diverse animazioni e' stata utilizzata la seguente formula:

A seconda del tipo di animazione cambia il grado della curva e la posizione dei punti di controllo. Nel caso delle rette sono state usate curve di Bezier lineari. Le figure a forma di elica sono composte da quattro curve di Bezier uguali di grado 3, i cui punti di inizio e fine sono stati posti tutti al centro dell'elica. I quattro punti di controllo di ciascuna di tali curve, il primo coincidente con l'ultimo, sono i vertici di un triangolo isoscele. I raggi della terza animazione sono curve di Bezier di grado 3. Infine le due lettere dell'ultima animazione sono due curve di Bezier rispettivamente con otto e undici punti di controllo, disposti in modo tale da formare una "L" e una "P".

Rotazioni

Per la seconda e terza animazione sono state sviluppate rotazioni in senso orario o antiorario, rispetto al centro dello schermo o al centro delle figure. Per le rotazioni in senso antiorario e' stata utilizzata la seguente formula:



Per le rotazioni in senso orario e' stata utilizzata una matrice di trasformazione della forma:



E' da notare che tali trasformazioni sono rotazioni con centro nell'origine, nel nostro caso in alto a sinistra della finestra. Per ottenere le rotazioni rispetto al centro della finestra, si e' operata un'opportuna traslazione del centro della finestra sull'origine e, dopo aver usato la rotazione, si e' ritraslato il tutto nella posizione originaria. Si e' proceduto analogamente per le rotazioni rispetto al centro delle figure. Le figure ruotano continuamente poiche', a partire dalla posizione iniziale, si e' operata la prima rotazione, al termine della quale si e' operata la stessa rotazione alla figura cosi ottenuta e cosi via. Le figure ruotano a diverse velocita' poiche per ognuna di esse e' stato scelto un differente valore di theta.

Omotetie

Un'omotetia e' una particolare trasformazione geometrica del piano che dilata o contrae gli oggetti, mantenendone la forma. Le omotetie sono trasformazioni del tipo:



Scegliendo k maggiore di 1 si ottiene una dilatazione. Con k compreso fra 0 e 1 si ottiene una contrazione. Per l'ultima animazione dello screensaver, a partire dalla figura iniziale si e' operata la prima dilatazione con k uguale a 1.05, al termine della quale si e' operata la stessa dilatazione alla figura cosi ottenuta, e cosi via. La formula usata descrive un'omotetia con centro nell'origine; per ottenere una dilatazione rispetto al centro dello schermo si sono operate due traslazioni, cosi come descritto precedentemente per le rotazioni.