Fortschrittsanzeige

1.6.9

 

Prototyping

Wenn man eine Cyber-Welt bauen möchte (world building), kommt es häufig vor, dass Objekte oder Teile davon mehrfach gebraucht werden. Um diese Objekte nicht immer wieder beschreiben zu müssen, kann man sich Prototypen "bauen" und diese - so wie Knoten - immer wieder einsetzen.

Das folgende Beispiel zeigt für ein Kristallgitter (z.B. NaCl = Kochsalz), wie man zuerst den Prototypen eines Atoms bilden kann und dann aus den Atomen die Elementarzelle des Gitters konstruiert. Wobei man über die Farbe der Atome und der als Verbindung benutzten Stäbe beim Einsatz verfügen kann.

Atom-Prototyp

Atom-Prototyp (1.6.9-1)

Vrmllink

VRML-Szene: Atom-Prototyp (Cosmo Player)

 
 
#VRML V2.0 utf8
PROTO ATOM [
  field SFColor AtomColor 1 0 0
  field SFColor BindungColor 1 1 1
]
{                              # PROTO-Body-Anfang
  Transform {
    children [
      Transform {              # Atom
        children Shape {
          appearance Appearance {
            material Material {
              diffuseColor IS AtomColor
            }
          }
          geometry Sphere {
            radius .2
          }
        }
      }                         # Ende Atom
      Transform {               # Bindungskreuz Y
        children 
          DEF AXE Shape { 
            appearance Appearance {
              material Material {
                diffuseColor IS BindungColor
              }
            }
            geometry Cylinder {
              height 1
              radius .03
            }
          }
      }
      Transform {
        rotation 0 0 1 1.57     # Bindungskreuz X
        children USE AXE
      }
      Transform {
        rotation 1 0 0 1.57     # Bindungskreuz Z
        children USE AXE
      }
    ]                           # Ende des ersten
	                        #   Kindknotens
  }                             # Ende der ersten
                                #   Transformation
}                               # Ende des Prototyps

Transform {
  translation -.5 0 -.5
  children ATOM {
    AtomColor 1 0 0 BindungColor 1 1 1
  }
}
Transform {
  translation .5 0 -.5
  children ATOM {
    AtomColor 0 1 0 BindungColor 1 1 1
  }
}
Transform {
  translation -.5 0 .5
  children ATOM {
    AtomColor 0 1 0 BindungColor 1 1 1
  }
}
Transform {
  translation .5 0 .5
  children ATOM {
    AtomColor 1 0 0 BindungColor 1 1 1
  }
}
Transform {
  translation .5 1 .5
  children ATOM {
    AtomColor 0 1 0 BindungColor 1 1 1
  }
}
Transform {
  translation -.5 1 .5
  children ATOM {
    AtomColor 1 0 0 BindungColor 1 1 1
  }
}
Transform {
  translation -.5 1 -.5
  children ATOM {
    AtomColor 0 1 0 BindungColor 1 1 1
  }
}
Transform {
  translation .5 1 -.5
  children ATOM {
    AtomColor 1 0 0 BindungColor 1 1 1
  }
}

NavigationInfo {
  type "EXAMINE"
}                               # Benutze den
                                #   Examine viewer
Kristallgitter

Kristallgitter (1.6.9-2)

Aufgabe

Aufgabe 1.6-6: Koordinatensystem prototypisch

(Dies ist eine Übungsaufgabe, die Sie auch auf der Abschlussseite finden)

Vereinfachen Sie die Szenenbeschreibung für das Koordinatensystem aus Aufgabe 1.6-2 (Abschnitt 1.6.5) mit Hilfe des Prototypings!

Hilfe:Szenenbeschreibung des Koordinatensystems