Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Traiettorie e curve di Bezier

Utilizzare le curve di Bezier come traiettorie per l'animazione dei modelli 3D
Utilizzare le curve di Bezier come traiettorie per l'animazione dei modelli 3D
Link copiato negli appunti

In questa lezione vedremo come animare un oggetto in un percorso complesso impostandone la direzione. Il concetto di curva di _bezier non è della libreria Papervision, ma di caurina. Tuttavia vista l'importanza di questa classe proviamo ad esaminare con più cura le sue possibili applicazioni. L'animazione _bezier è definita tra le Special Properties della libreria e hanno bisogno di una inizializzazione particolare.

import caurina.transitions.properties.CurveModifiers;

CurveModifiers.init();

Visto però la natura mutevole della classe può essere utile consultare il manuale ufficiale.

Una volta impostati i parametri speciali che si voglio usare in caurina l'applicazione dei beizer consiste nello specificare, tramite un array di punti di controllo, le traiettorie curve che l'oggetto seguirà prima di giungere al suo punto d'arrivo.

var andata:Array = new Array();
andata.push({z:200, x:200});
andata.push({z:600, x:-200});
Figura 7. Traiettoria di Bezier e punti di controllo
Traiettoria di Bezier e punti di controllo

Una volta impostato l'array dei punti, li aggiungiamo al Tweener.

Tweener.addTween(mioOggetto, { z:800, x:0,
                               _bezier:andata,
                               time:5.5,
                               transition:"linear" });

Ora abbiamo a disposizione un metodo per animare i nostri oggetti 3D. Quello che ci manca è una tecnica per impostarne la direzione in modo corretto. Sappiamo già che tramite lookAt() possiamo impostare la direzione di un oggetto, quindi possiamo creare un "oggetto guida", ovvero un punto che faccia da target precedendo il nostro modello sullo stesso percorso.

Per fare questo come prima cosa dobbiamo avere la posizione iniziale del nostro oggetto e crearne un altro nella stessa posizione. Come si crea un solido già lo sappiamo mentre per copiare da i parametri della posizione invece di impostare x,y e z uguali tra i due possiamo avvalerci della funzione

oggettoTarget.copyPosition(oggetto);

Fatto questo basterà far partire l'oggettoTarget un po' prima dell'elemento che desideriamo far muovere.

Possiamo vedere tutto il codice dell'esempio qui

Ti consigliamo anche