|
||||||
ROBOTICA
video
immagini
papers
progettati
costruiti
toolbox
vrml
simulatori
Innestare nodi Transform |
Vediamo ora come sia possibile
costruire una gerarchia di oggetti collegati fra di loro.
Nel seguente esempio
riconsidero il caso della freccia. Supponiamo di voler porre la freccia in
una certa posizione dello spazio. Decidiamo di porla a 5 metri di distanza
dall’origine nella direzione negativa dell’asse z (e quindi più lontano dal
punto di vista iniziale dell’osservatore).
Basta innestare nodi
Transform all’interno del campo children di un altro Transform per collegare
rigidamente i due pezzi. Infatti, si badi bene che la prima traslazione impostata
(quella di 5 metri lungo l’asse z) viene applicata a tutti i nodi contenuti
nel campo children ; quindi si applica sia al cilindro che al secondo nodo
Transform . Quest’ultimo applica una ulteriore traslazione lungo y di 0.4
metri. Ne segue pertanto che il cono si posiziona seguendo la doppia traslazione
effettuata. Se dovessi cambiare la prima traslazione per spostare la freccia,
oltre al cilindro si sposterà nello stesso modo anche il cono che rappresenta
la punta della freccia. In pratica all’interno del campo children di un nodo
Transform si lavora in coordinate relative al nuovo sistema identificato.
E questo vale sia per traslazione che per rotazione.
In questa prima parte
mi sono mosso molto piano. Una volta capiti questi concetti fondamentali si
può procedere in maniera più spedita. Ed è quello che faremo a partire dalle
prossime sezioni.
#VRML V2.0 utf8
# esempio di come innestare nodi Transform
Transform {
translation 0 0 -5
children [
Shape {
appearance Appearance {
material Material {emissiveColor .5 .5 0}
}
geometry Cylinder {
radius .01
height .8
}
}
Transform {
translation 0 0 .4
children [
Shape {
appearance Appearance {
material Material {emissiveColor 1 0 0}
}
geometry Cone {
bottomRadius .03
height .07
}
}
] # chiude il secondo children
} # chiude il Transform innestato
] # chiude il primo children
} # chiude il primo Transform