<<   Übungen für den Unterricht >>

Programmiere in VRML folgendes Objekt:
  • quadratische Platte a= 5 h=0.5, blau, vier rote Kugeln r=1 an den Ecken
  • quadratische Platte a= 5 h=0.5, blau, mit einem quadratischen Loch in der Mitte (Extrusion!!!)

AUFZIEHEN EINES BILDES AUF EINEM OBJEKT

appearance Appearance { texture ImageTexture { url "Mauer.gif" } 
                        textureTransform TextureTransform { scale 1 1 } }
Eine sich drehende Litfass-Säule entwerfen, auf der ein Werbeplakat aufgezogen ist.
KANTENMODELL DES POLYEDERS ... EDGES
Shape { appearance Appearance { material Material {} }
             geometry   IndexedLineSet 
             { coord Coordinate  { point [ 2, 0, 2,  -2, 0, 2,  -2, 0,-2, 2, 0,-2, 0, 3, 0 ]   }
coordIndex [ 0,1,2,3,0,-1, 0,1,4,0,-1, 1,2,4,1,-1, 2,3,4,2,-1, 3,0,4,3,-1 ] } }
Achtung: wird u.U. schwarz gezeichnet, daher: heller Hintergrund
Variable verwenden für die Punkte:
DEF Punkte Coordinate  { point [ 2, 0, 2,   -2, 0, 2,   -2, 0,-2,   2, 0,-2,   0, 3, 0  ] 
wird dann aufgerufen mit USE Punkte
FLÄCHENMODELL DES POLYEDERS
Shape { appearance Appearance { material Material {} }
             geometry  IndexedFaceSet 
             { solid FALSE 
               coord Coordinate { point [ 2, 2,0, -2, 2,0, -2,-2,0, 2,-2,0, 0, 0,3 ]  }
               coordIndex [ 0,1,4,0,-1, 1,2,4,1,-1, 2,3,4,2,-1, 3,0,4,3,-1 ]  
             }
      }
Es kann auch eine beliebige (!) Liste von Farben angegeben und jedem Punkt dann eine Farbe zugewiesen werden (genauso viele Zuweisungen wie Punkte
colorPerVertex FALSE   
         color Color { color [ 1 0 0 0 1 0 0 0 1 ] 
                       colorIndex [ 2 1 0 1 0 ] 
                     }
Vier Sechsecke werden mit je einer Kante aneinandergeheftet, da der Winkel dann insgesamt mehr als 360° beträgt entsteht ein räumliches Objekt. Jedes Sechseck erhält eine andere Farbe.
#VRML V2.0 utf8

Background { skyColor 0.2 0.2 0.3 }
Shape
  { appearance Appearance { material Material {} }
    geometry
      IndexedFaceSet
        { solid FALSE
          coord Coordinate
            { point  [ -2,-2,1, -2,-1,0, -2, 1,0, -2,2,1, -1,-2,2, -1,0,0,  -1,2,2,   0,-1,2,
                        0,0,1,   0,1,2,   1,-2,2,  1,0,0,   1,2,2,  2,-2,1,  2,-1,0,  2,1,0,   2,2,1]
            }
          coordIndex  [  0,1,5,8,7,4,0,     -1   2,3,6,9,8,5,2,     -1
                         7,8,11,14,13,10,7, -1   8,9,12,16,15,11,8, -1 ]
          colorPerVertex FALSE
          color Color
            { color   [  1.0 0.0 0.0,  0.0 1.0 0.0,  0.0 0.0 1.0   1.0 0.5 0.0 ]
            }
          colorIndex  [ 3 1 2 0 ]
        }
  }
WENDELFLÄCHE MIT EXTRUSION
Shape { appearance Appearance { material Material { diffuseColor 1 0 0 } }
geometry Extrusion { solid FALSE convex FALSE beginCap FALSE endCap FALSE creaseAngle 1
crossSection[-4 0 4 0]
spine [0 0 0 bis 0 6 0 mit Schrittweite 0.25]
orientation [0 1 0 0, 0 1 0 0.2, usw. bis 0 1 0 3.2] wegen pi/16 ungefähr 0.2
}
Die Punkte eines Kreises kann man für verschiedene Zwecke brauchen.
Falls man den Kreis mit drei Koordinaten braucht, kann man als 3. Koordinate 0 hinzufügen, z.B. in der Mitte, dann hat man einen waagrechten Kreis.
Vase entwerfen
beliebige Annahme, unten geschlossen, oben offen.
Kreiskonoid

Kreis extrudieren: spine enthält die Punkte 0 00 0 und 0 2 0 und die Skalierungsfaktoren 1 1 und 0 1
Drehkegelstumpf entwerfen
  • Extrusion: Kreis mit r=2 nach oben auf  0 3 0  extrudieren mit scale 0.5 
  • dann Extrusion auf  0 3 0  mit scale 0.9 (ergibt Wandstärke 0.1)

dann Extrusion auf  0 0 0  mit scale 2.111 (ergibt wieder Wandstärke 0.1
Halbzylinder entwerfen (Tonnengewölbe)
Zylinderhuf:
Extrusion des Kreises, dann drehen um 45° und skalieren mit 1.414
Klostergewölbe entwerfen
Kreis zweimal extrudieren nach verschiedenen Richtungen, dann zusammensetzen
Kreuzgewölbe entwerfen
sinngemäß

Geometrische Transformationen
Sie sind bezüglich der Hintereinanderausführung nicht immer kommutativ. Muster:
 Transform { children [ Shape
                          { appearance Appearance { material Material {} }
                            geometry Box {} 
                      ] 
                      translation 2.0 0 0
                      scale ex ey ez, 
                      rotation ax ay az wink (Achse und Drehwinkel im Bogenmaß)
           }
Säule
Eine Säule mit VRML durch Extrusion eines Kreises entwerfen. (der Schaft wird etwas eingezogen, das Kapitell geht stark auseinander.
Darüber eine quadratische Platte. Speichern unter Saeule.wrl Sechs solcher Säulen aneinanderreihen (inline), speichern als Querfront.wrl, 13 Säulen speichern als Langfront.wrl.
Damit einen Tempel zusammensetzen.

Dasselbe mit einem Kugelkapitell, das Skript ist durch Exportieren mit einem anderen Programm entstanden (Blender).
Ergänze den Säulenschaft und verfahre wie vorher.

Bildergalerie
Einige Räume werden entworfen (aus Fußboden und Wänden, ohne Decke.
Es soll meine Bildergalerie gestaltet werden (Bilder auf dünnen Qudern aufziehen und an den Wänden platzieren. Plane Sensor verwenden, damit man sie verschieben kann.
Torus
Querschnitt ein verschobener Kreis in der xz-Ebene, spine ein Kreis in der x-y-Ebene.

<<    >>