Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 15 di 51
  • livello principiante
Indice lezioni

Introduzione trasformazioni

Un'introduzione alle trasformazioni che permettono di applicare rotazioni e traslazioni a un qualsiasi oggetto
Un'introduzione alle trasformazioni che permettono di applicare rotazioni e traslazioni a un qualsiasi oggetto
Link copiato negli appunti

Abbiamo visto in precedenza che possiamo ruotare un oggetto 3D per avere un miglior senso della prospettiva e che muovendo la telecamera possiamo ottenere diverse angolazioni e posizioni di una scena statica; sfruttando questi aspetti possiamo rendere più "accattivante" il nostro mondo 3D, andando ad animare gli oggetti e facendoli muovere all'interno della scena.

Sandy offre le classi TransformGroup e Transform3D proprio per applicare rotazioni e traslazioni a un qualsiasi oggetto (o gruppo di oggetti): le trasformazioni possono anche essere animate automaticamente impostando un valore iniziale e uno finale grazie agli interpolatori, che tratteremo più a fondo in seguito.

Inizieremo creando dei semplici esempi che ci aiuteranno a comprendere meglio il funzionamento degli spostamenti e delle rotazioni im ambito 3D; è possibile scaricare i file Actionscript prima di iniziare.

Ruotare un cubo

Inseriamo il cubo, creato in precedenza, nella nostra scena, ruotandolo leggermente rispetto alla sua posizione originale:

Listato 16. Inserimento del cubo nella scena

function createScene( bg:Group ):Void {
    var cube:Object3D = new Box( 50, 50, 50, 'quad' );
    var skin:Skin = new MixedSkin( 0x00FF00, 80, 0, 100, 1 );
    cube.setSkin( skin );
    var tg:TransformGroup = new TransformGroup();
    var rotation:Transform3D = new Transform3D();
    rotation.rot(20,30,0);
    tg.setTransform( rotation );
    tg.addChild( cube );
    bg.addChild( tg );
}

In questo modo creiamo un TransformGroup in cui poi andiamo a inserire il Transform3D e il cubo creato in precedenza, quindi aggiungiamo tutto il TransformGroup al gruppo principale del mondo.

La trasformazione applicata all'oggetto Transform3D ha effetto su tutti gli oggetti in esso contenuti (nel nostro esempio solamente il cubo).

Per testare la trasformazione in maniera interattiva, creiamo un file (nell'esempio, BoxTest.as) dove inseriamo alcuni controlli che ci permetteranno di variare interattivamente la rotazione del nostro cubo, agendo sull'oggetto Transform3D.

Nell'esempio troviamo un riferimento globale (rotation) all'oggetto Transform3D e il sistema di coordinate usato anche in precedenza, come riferimento visivo.

Sullo stage in Flash invece sono presenti tre campi di testo dinamici (xStep, yStep e zStep) e un pulsante (rotateButton). Questi elementi vengono utilizzati per cambiare la rotazione del cubo:

Figura 4. Stage per la creazione il cubo
Stage per la creazione il cubo

"© Petit Publications 2006" - diritti riservati

Ti consigliamo anche