Adsense Banner

Un cardine 3D

Papervision3D - Creare un cardine con DisplayObject3D

Una tecnica comune di nidificazione è quella di creare un'istanza di DisplayObject3D da usare come un supporto a cui si aggiungono altri oggetti come ad esempio delle primitive. Questa tecnica è simile a quella descritta nell'esempio precedente. Tuttavia, questa volta non si utilizza una primitiva come genitore, bensì  un'istanza di DisplayObject3D. Se si crea un do3D e si aggiunge alla scena, esso non si vede sullo schermo perché non è costituito da vertici e triangoli. Tuttavia, analogamente alle primitive ha comunque il metodo addChild () metodo che ci permette di aggiungere altri oggetti ad esso. Inoltre ha tutte le proprietà e metodi che consentono di spostarlo e ruotarlo. Il do3D servirà come punto cardine per i suoi figli, proprio come la sfera genitore ha fatto per la sfera figlio nell'esempio precedente.

import org.papervision3d.objects.DisplayObject3D;

Il codice seguente mostra parte di una classe chiamata PivotDO3DExample. Si noti la somiglianza con la classe precedentemente descritta Nestingexample.
Questa volta però abbiamo assegnato un'istanza di DisplayObject3D come proprietà della classe.

private var pivotDO3D:DisplayObject3D;

Nel metodo init () creiamo la do3D e aggiungiamola alla scena.

private function init():void
{
   pivotDO3D = new DisplayObject3D();
   scene.addChild(pivotDO3D);

Successivamente, creiamo la sfera figlio e impostiamo la sua coordinata x a 400.

   var childSphere:Sphere = new Sphere(null,100,12,8);
   childSphere.x = 400;

Poi si aggiunge la sfera figlio al do3D che funge da genitore:

   pivotDO3D.addChild(childSphere);

quindi, nel metodo Render facciamo ruotare il genitore intorno al proprio asse y.

override protected function onRenderTick(e:Event=null):void
{
   pivotDO3D.localRotationY++;
   super.onRenderTick();
}

Se si confronta questo codice con quello della classe NestingExample potete vedere che abbiamo solamente sostituito  parentSphere  dal nostro esempio precedente con pivotDO3D, che è un istanza di DisplayObject3D. Aggiunta la sfera figlio a pivotDO3D, la prima assume come riferimento il sistema di coordinate della seconda. Se si pubblica questo file si dovrebbe vedere la sfera ruotare intorno ad un punto immaginario, pivotDO3D, proprio come la sfera figlio si muoveva rispetto la sfera genitore nel progetto NestingExample.

Filippo Porcari
Author: Filippo PorcariWebsite: http://filippo.porcari.oranjuice.org/Email: Questo indirizzo email è protetto dagli spambots. E' necessario abilitare JavaScript per vederlo.
designer freelance
Sono un graphic designer e mi occupo di pubblicità. Da più di 10 anni dedico le mie energie alla realizzazioni d'immagine aziendale e comunicazione visiva con un'attenzione alle nuove tecnologie del web. Da qualche anno ho scoperto il software open source e mi sono dedicato alla sua introduzione nel mio workflow produttivo ottenendo ottimi risultati.