Ora che abbiamo creato la nostra funzione per realizzare un sistema di riferimento meno "invadente", passiamo a un'altra forma primitiva molto utile: il cilindro.
In Sandy, come in qualsiasi sistema 3D di tipo vettoriale, un cilindro è formato da diverse facce.
Per i corpi rotondo o curvi (come appunto il cilindro) il numero di nodi (vertici) e facce determina la qualità dell'oggetto stesso: quindi, un cilindro, per avere un buon aspetto ed essere tondeggiante, richiede molte facce.
Il numero di facce è impostabile con il parametro qualità presente nella funzione per la creazione di questo oggetto.
Listato 10. Disegnare un cilindro
function createScene( bg:Group ):Void {
// Creiamo il sistema di coordinate
createCoordinateSystem(bg, true, 1);
// Creiamo il cilindro
var cyl = new Cylinder( 40, 40, 8, 'quad');
cyl.setSkin( new MixedSkin(0xFEFE4E, 40, 0, 40, 1));
bg.addChild( cyl );
}
Abbiamo assegnato, al nostro cilindro, un raggio pari a 40 pixel, un'altezza di 40 pixel e una qualità pari ad 8 (facce lungo il perimetro del cerchio di base). Abbiamo anche impostato una MixedSkin di colore giallo semi-trasparente, con un bordo nero piuttosto sottile.
Il cilindro con qualità impostata ad 8
Come vediamo il numero di facce non è sufficiente a creare un cilindro ben arrotondato. Proviamo ad aumentare le facce:
Il cilindro con qualità impostata a 40
Per evitare il bordo possiamo utilizzare un SimpleColorSkin al posto del MixedSkin, inoltre utilizzando il codice skin.setLightingEnabled(true), possiamo aggiungere le luci per dare un aspetto migliore al nostro cilindro. La fonte di illuminazione di default è una luce parallela, che non crea alcuna ombra:
Il cilindro con qualità impostata a 40, SimpleColorSkin e illuminazione abilitata
Per avere un cilindro più tondeggiante, basta aumentare la qualità. Prestiamo però attenzione: più facce significano un maggior impegno per il processore!
Notiamo in tutti gli esempi il sistema di riferimento creato con la funzione createCoordinateSystem.
"© Petit Publications 2006" - diritti riservati
Se vuoi aggiornamenti su Development inserisci la tua email nel box qui sotto: