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

Esempio pratico

Il primo esempio pratico delle trasformazioni lo realizziamo facendo ruotare un cubo in base alle coordinate che gli passiamo
Il primo esempio pratico delle trasformazioni lo realizziamo facendo ruotare un cubo in base alle coordinate che gli passiamo
Link copiato negli appunti

Passiamo ora al codice: andremo a scrivere le funzioni init() e rotate():

Listato 17. Creazione scena e rotazione cubo

function init( Void ):Void {
    screen = new ClipScreen( this.createEmptyMovieClip('screen', 1), 200, 200 );
    var cam:Camera3D = new Camera3D( 800, screen );
    cam.setPosition(0,0,-500);
    world.addCamera( cam );
    var bg:Group = new Group();
    world.setRootGroup( bg );
    createScene( bg );
    
    // Creiamo gli assi di riferimento
    createCoordinateSystem( bg, false, 1 );
    // Associamo la funzione rotate alla pressione del pulsante rotateButton
    rotateButton.onRelease = rotate;
    // Renderizziamo la scena
    world.render();
}
function rotate(){
    rotation.rot( Number(xStep.text),Number(yStep.text),Number(zStep.text) );
}

All'interno della funzione init(), per prima cosa creiamo la clipScreen e il mondo 3D, quindi aggiungiamo gli assi delle coordinate (come riferimento visivo) e facciamo sì che alla pressione del pulsante rotateButton venga eseguita la funzione rotate(). Tale funzione si occupa di impostare la rotazione del cubo secondo i valori specificati all'interno dei campi di testo xStep, yStep e zStep.

Nella funzione createScene ricordiamo che abbiamo già ruotato leggermente il cubo (20 pixel sull'asse X e 30 pixel sull'asse Y).

Per rendere più gradevole l'aspetto del cubo (e per vedere meglio gli effetti della rotazione) potremmo applicare una skin con abilitata l'illuminazione:

Listato 18. Applica una skin e abilita l'illuminazione

var skin:Skin = new MixedSkin( 0xF28F35, 100, 0, 0, 0 );
// Abilitiamo l'illuminazione per la skin
skin.setLightingEnable( true );
// Applichiamo la skin al cubo
cube.setSkin( skin );

Cambiando i valori all'interno dei campi di testo e premendo il pulsante vedremo il cubo cambiare rotazione:

Esempio rotazione cubo

Con questo esempio notiamo come l'oggetto Transform3D possa essere modificato anche dopo essere stato aggiunto a un altro gruppo.

Notiamo anche che quando premiamo il pulsante "rotateButton", la trasformazione avviene basandosi sulla posizione di default e non su quella attuale, infatti se per esempio premiamo il pulsante lasciando i valori a 0,0,0 ci ritroveremo con il cubo come apparirebbe di default (annullando quindi la rotazione di 20 e 30 gradi eseguita in precedenza nella funzione createScene).

"© Petit Publications 2006" - diritti riservati

Ti consigliamo anche