|
||||||
ROBOTICA
video
immagini
papers
progettati
costruiti
toolbox
vrml
simulatori
Altri interpolatori |
Il nodo interpolatore visto
nel paragrafo precedente è in grado di interpolare posizioni.
Vrml fornisce altri tipi
di interpolatori predefiniti che possono essere utili per realizzare animazioni.
Supponiamo per esempio di voler far ruotare un cubo; in tale caso un PositionInterpolator
non potrebbe essere utile.
In particolare, in tal
caso, utilizziamo un interpolatore che fornisce in uscita dei valori di tipo
SFRotation. Questi valori di rotazione vengono poi mandati al campo rotation
del nodo che definisce la posizione dell’oggetto da ruotare. Il nodo che svolge
questa funzione è il nodo OrientationInterpolator. Il suo funzionamento risulta
identico a quello di un PositionInterpolator.
Vediamone un esempio
:
L’esempio è molto semplice
per cui non necessita di altre spiegazioni. Quello che cambia è solo il tipo
del valore esportato dall’interpolatore.
Esistono altri interpolatori
predefiniti da vrml. Questi sono ColorInterpolator, CoordinateInterpolator,
NormalInterpolator e ScalarInterpolator. Ognuno di questi interpolatori esporta
tipi diversi. Il loro impiego è simile, se non identico, a quello dei due
interpolatori visti. Ho analizzato solo questi due in quanto di gran lunga
i più frequenti.
#VRML V2.0 utf8
# cubo che ruota
DEF cubo Transform {
children [
Shape {
appearance Appearance {
material Material { emissiveColor 1 0 0 }
}
geometry Box { size 1 1 1 }
}
]
}
DEF tempo TimeSensor {
cycleInterval 6
enabled TRUE
loop TRUE
startTime 1
}
DEF rot OrientationInterpolator {
key [0 .25 .5 .75 1]
keyValue [0 1 0 0, 0 1 0 1.57, 0 1 0 3.14, 0 1 0 4.71, 0 1 0 6.28]
}
ROUTE tempo.fraction_changed TO rot.set_fraction
ROUTE rot.value_changed TO cubo.set_rotation