![]() |
|
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|
|
|||||
![]() |
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. |
|
||||
![]() |
||||||
#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 |
|
|||||
![]() |
|