VRML






Features





Scenengraph


Wichtige Knotentypen







Einfaches Beispiel einer Animation




#VRML V2.0 utf8
# Der Kommentar der ersten Zeile ist zwingend vorgeschrieben

# Einfaches Hello World Programm das einen String darstellt und 
# einen Link ins World Wide Web darauf legt
# Animiert ueber einen Tranformknoten

DEF SCHRIFT  Transform
   {
   children
      [
      Anchor 
         {
         children 
            [
            Shape 
               {
               geometry Text 
                  {
                  string ["Hello World"]
                  }
               }
            ]
            description "Hello World"
            url "http://www.fourmilab.ch/cgi-bin/uncgi/Earth?imgsize=320&opt=-l&lat=0.184093&ns=North&lon=359.53&ew=West&alt=1000000&img=learth.evif"
         }
      ]
   }
   
DEF ROTOTATOR OrientationInterpolator 
   {
   key [0, 0.5, 1]
   keyValue 
      [
      0 1 0 0, 
      0 1 0 3.14, 
      0 1 0 6.28 
      ]
   }

DEF TIMER TimeSensor 
   {
   cycleInterval 10
   loop TRUE
   }


ROUTE TIMER.fraction_changed TO ROTOTATOR.set_fraction
ROUTE ROTOTATOR.value_changed TO SCHRIFT.set_rotation








Rotation/Mathematik

Meist werden Drehungen meist über Eulersche Winkel und Drehmatrizen behandelt.

VRML definiert Drehungen über einen Vektor und eine Winkel (4 Werte pro Drehung)

Ein Normierung über Vektor und dem Cosinus des halben Winkels ergibt ein Quaterion, eine Art 3 dimensionale Erweiterung der Imaginäre Zahlen.

Mit Hilfe der Rechenregeln der Quaterionen lassen sich mathematische Probleme lösen (z.B. die Kombination zweier Drehungen, ohne dafür
2 Transformknoten einsetzen zu müssen).





Rotation/anschaulich betrachtet




Eine Rotation in VRML sind: