Adsense Banner

Accesso ai vertici

Papervision3D - Accesso ai vertici

logoPV3DTorniamo per un attimo agli elementi di base di un oggetto 3D, i vertici.
I vertici di ogni do3D sono memorizzati in un array. Potete accedervi attraverso le proprietà di geometria.

do3D.geometry.vertices

Supponiamo che si desidera conoscere le coordinate x e y di tutti i vertici del piano che abbiamo costruito in PlaneExample. Poiché i vertici sono memorizzati in un array, è possibile scoprire quanti ce ne sono utilizzando la proprietà lunghezza.

var numberOfVertices:Number = plane.geometry.vertices.length;

Quindi è possibile scorrere l'array con un ciclo for:

for(var i:uint = 0; i < numberOfVertices; i++)
{
   trace("x: " + plane.geometry.vertices[i].x,
   "y: " + plane.geometry.vertices[i].y,
   "z: " + plane.geometry.vertices[i].z)
}

Questo restituirà a video:
x:-150  y: -150  z: 0
x:-150  y: 150   z: 0
x:150   y: -150  z: 0
x:150   y: 150   z: 0

Come si può vedere, vengono restituite le coordinate x, y, z di soli quattro. Forse ci si sarebbe aspettato le coordinate di sei punti, poichè ogni triangolo ha tre vertici e qui abbiamo due triangoli. Tuttavia, visto che sono condivisi dai due triangoli, non abbiamo bisogno di due dei sei vertici perchè sono nella stessa posizione, cioè sovrapposti. Si può certamente immaginare che per un oggetto complesso con centinaia o migliaia di triangoli, sbarazzarsi dei doppi vertici può davvero fare la differenza quando l'oggetto viene renderizzato. Così si risparmia memoria per i calcoli eseguiti dal Flash player, cosa che si traduce in una performance superiore del filmato stesso.

Le proprietà x, y, z, che sono coordinate, funzionano sia in lettura che in scrittura. Come le abbiamo appena lette, scriverle è altrettanto facile. Questa riga di codice imposta il valore della proprietà di x del primo vertice della matrice a -300:

plane.geometry.vertices[0].x = -300;

Ciò si tradurrà in una forma alterata. Il primo vertice della matrice è evidentemente il vertice in basso a sinistra del triangolo di sinistra.

PianoDistorto1

Vediamo cosa succede quando al posto della proprietà x noi impostiamo la proprietà z per lo stesso vertice:

PianoDistorto2

Questo crea subito una illusione 3D sul nostro schermo 2D. Il vertice in basso a sinistra è spostato più lontano rispetto a noi. Naturalmente questi sono solo semplici modifiche, ma dimostrano che è possibile personalizzare gli oggetti alle proprie esigenze.

Le stesse proprietà della geometria permettono anche di accedere ai facce triangolari di un oggetto, ecco :

do3D.geometry.faces
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.