ROBOTICA

video
immagini
papers
progettati
costruiti
toolbox
vrml
simulatori

links

 

Papers
meccanica
sistemi
documents

Capitolo 22° Altri interpolatori Capitolo 24°

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 :

#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

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.