Contents Previous Next

5.1.5 Der Igel in 3D

Beginnend mit Version 0.9.92 kann unser Igel die Ebene verlassen und sich im 3D-Raum bewegen. Wir benutzen das Primitiv perspektivisch , um dorthin zu schalten. Willkommen in der 3D-Welt!

Die perspektivische Projektion

Um einen 3D-Raum in einer 2D-Ebene darzustellen, benutzt XLogo eine perspektivische Projektion. Eine Kamera sieht auf die 3D-Szene und angezeigt wird das Bild des Projektionsschirms. Hier ist ein kleines Schema, das dies erklären soll:

Einige Primitive erlauben die Kameraposition zu setzen, der Projektionsschirm liegt auf halber Entfernung zur Kamera.

Orientierung in 3D-Welt verstehen

In der Ebene wurde die Orientierung des Igels nur durch seinen Kurs (kurs) definiert. In der 3D-Welt ist die Orientierung des Igels durch drei Winkel gegeben:

Es erscheint zunächst sehr schwierig zu sein, aber Sie werden sehen, dass die Dinge sehr ähnlich bleiben zu den Bewegungen in der 2D-Ebene. Hier sind die Grund-Primitive für das Bewegen in der 3D-Welt:

Wenn wir in der 2D-Ebene ein 200 Schritte breites Quadrat zeichnen wollen, schreiben wir:

wiederhole 4 [vorwärts 200 rechts 90]

Diese Anweisungen sind auch in der 3D-Welt verfügbar und das Quadrat wird in dem Modus perspektivisch gezeichnet. Wenn der Igel 90 Grad herunter geht, können wir ein weiteres Quadrat zeichnen und wir erhalten:

    löschebild 
    wiederhole 4 [vorwärts 200 rechts 90]
    runter 90
    wiederhole 4 [vorwärts 200 rechts 90]

Sie müssen gerade einmal ein paar Beispiele probieren, um diese Orientierung zu verstehen und werden ein Experte! Dann werden Sie erkennen, wie die drei Rotations-Primitive verbunden sind. Zum Beispiel versuchen Sie das:

    löschebild
    rollelinks 90 rauf 90 rollerechts 90

Das Bewegen des Igel ist äquivalent zu links 90.

Verfügbare Primitive im 2D- und 3D-Modus

Die folgenden Primitive sind verfügbar in der Ebene und in der 3D-Welt. Der einzige Unterschied sind die Argumente, die diese Primitive empfangen. Zum Beispiel warten die Primitive setpos und setposition immer noch auf ein Listenelement als Argument. In 3D muss diese Liste aus drei Zahlen bestehen, welche die drei Punktkoordinaten darstellen. Hier sind diese Primitive:

kreisbogenheim richtung
abstandsetzeposition setzexsetzey
setzerichtungigeltext längeigeltextpunkt
posrichtung. .

Nur im 3D-Modus verfügbare Primitive

rollerechts 100 rauf 20 rechts 90

Wenn Sie die Reihenfolge der Anweisungen ändern, erhalten Sie nicht die gültige Orientierung!

3D Betrachter

Ein 3D-Betrachter ist in XLogo enthalten und erlaubt es Ihre Zeichnungen in 3D darzustellen. Dieses Modul verwendet die Java3D Bibliotheken, so dass es notwendig ist Java3D voll installiert zu haben.

Hier sind die Regeln zur Verwendung des 3D-Betrachters:

Wenn wir geometrische Figuren im Zeichenbereich erschaffen wollen, müssen wir den 3D-Betrachter anweisen, welche Formen wir für zukünftige Darstellungen aufzeichnen wollen. Es ist möglich Vielecke/Vieleckflächen, Linien, Punkte und Text aufzuzeichnen.

Hier sind die Primitive:

Zeichnen eines Würfels

Alle Seitenflächen bestehen aus 400 Schritten breiten Quadraten. Hier ist das Programm:

  lerne quadrat
    # we record the vertice square
    vieleckanfang wiederhole 4[vorwärts 400 rechts 90] vieleckende
  Ende

  lerne einfacherWürfel
    # gelb cube
    löschebild perspektivisch setzestiftfarbe gelb
    # lateral faces
    wiederhole 4[quadrat stifthoch rechts 90 vorwärts 400 links 90 rollerechts 90 stiftab]
    # bottom face
    runter 90 quadrat rauf 90
    # upper face
    vorwärts 400 runter 90 quadrat
    # visualization
    vieleckansicht
  Ende

Wir starten das Kommando einfacherWürfel:

Wenn wir in der Prozedur Quadrat vieleckanfang durch linienanfang und vieleckende durch linienende ersetzen:

Hätten wir punkteanfang und punkteende statt linienanfang und linienende verwendet, sollten wir auf dem Schirm nur die acht Würfelecken sehen. Diese Primitive sind sehr wichtig zum Darstellen von Punktemengen in 3D.


Contents Previous Next