_______________________________________________________________________________
Inhalt....: Abbildungen des Raumes
Kategorie.: Unterrichtsmaterial
Mathematik: Geometrie R^3, Lineare Algebra
MuPAD.....: 4.0.0
Datum.....: 2007-12-11
Autoren...: Holger Böttcher <hboettcherebw@aol.com>
Funktionen: PACKAGEPATH, package
_______________________________________________________________________________
Hinweis: Dieses Arbeitsblatt verwendet das Package agla (Analytische Geometrie und Lineare Algebra) von Holger Böttcher (hboettcherebw@aol.com). agla ist ein interaktives Hilfsmittel für MuPAD Pro 4, um Aufgaben der Analytischen Geometrie im R^3 mit Abiturniveau zu lösen. Das package steht inklusive Installationsanleitung und Dokumentation auf dem SciFace Software WebServer unter www.sciface.com/download/packages.php kostenfrei zur Verfügung.
Demonstration der Anwendung von agla
Version 2
demo6
Abbildungen des Raumes
Vorbereitung
Um die Berechnungen auf dem Anwendungscomputer nachzuvollziehen, ist PACKAGEPATH auf den Ordner mit dem package agla einzustellen
PACKAGEPATH := PACKAGEPATH, "D:\\mupad4\\packages\\":
package("agla"): export(agla): prolog():
Verwenden von O als Bezeichner für den Nullvektor/Koordinatenursprung, Verfügbarmachen von D und E als Bezeichner
bezDEO():
MuPAD-Bezeichner O wurde umdefiniert, D und E sind frei benutzbar
Abbildungen des Raumes
Die in agla vorgenommene Erweiterung auf die Ebene und die neu verfügbaren Objekte Matrix, Abbildung und Figur bzw. Koerper erlauben es, Abbildungen des Raumes und der Ebene auf einfache Art zu erzeugen und zu visualisieren
Hier sollen einige Möglichkeiten für Abbildungen des Raumes demonstriert werden
Ein Vektor im Raum wird in der Form v(1,2,3) erzeugt, Punkte werden mit ihren Ortsvektoren identifiziert
Eine Matrix setzt sich aus solchen (Spalten-)Vektoren zusammen, sie kann entweder mittels der Erzeugerfunktion Matrix oder durch Verkettung mit dem " . "-Operator gebildet werden
Matrix( v(1,2,3), v(3,4,5), v(5,6,7), v(6,7,8) )

v(1,2,3) . v(3,4,5) . v(5,6,7) . v(6,7,8)

Ein Koerper besteht aus einer Menge von Punkten, die durch gerade Linien (Kanten) verbunden sind. Zu seiner Erzeugung ist eine Matrix anzugeben, die so erhalten wird: Bei einem Punkt beginnend wird die gesamte Kantenmenge des Koerpers in einem Zug durchlaufen, wobei jeder angetroffene Punkt eingetragen wird, eventuell mehrfach. Besteht der Koerper aus separaten Teilmengen, so ist vor der Fortsetzung der Kodierung mit dem nächsten Teil ein Trennpunkt der Form v(x,x,x) einzutragen
Es soll zunächst ein Würfel der Kantenlänge 5 auf diese Art erzeugt werden, wozu die Eckpunkte benötigt werden
p1 := O: p2 := v(5,0,0): p3 := v(5,5,0): p4 := v(0,5,0):
p5 := v(0,0,5): p6 := v(5,0,5): p7 := v(5,5,5): p8 := v(0,5,5):
m := p1.p2.p3.p4.p1.p5.p6.p2.p6.p7.p3.p7.p8.p4.p8.p5

wuerfel := Koerper(m)
![]()
Grafik(wuerfel)

Die Bilder dieses Koerpers bei einer Verschiebung um einen Vektor und bei der Spiegelung an der yz-Ebene (die Spiegelungen an den Koordinatenebenen sind vordefiniert) können so erhalten werden
w_versch := wuerfel::bild( verschiebung(v(0,3,3)) );
w_spieg := wuerfel::bild( spiegelung(xzEbene) )
![]()
![]()
Die beiden benutzten Funktionen liefern Abbildungen:
verschiebung(v(0,3,3)); spiegelung(xzEbene)


Grafik([wuerfel, 0.2], [w_versch, gruen], [w_spieg, blau])

Für eine zentrische Streckung soll die Animierfähigkeit von Abbildungen benutzt werden. Streckzentrum ist der Ursprung, der Streckfaktor wird variiert
Grafik([wuerfel::bild(streckung(O, a)), 0..2])

Grafik anklicken
Drehungen um die Koordinatenachsen ebenfalls über eine Funktion verfügbar, wie z.B. die folgenden (der Drehwinkel ist in Grad anzugeben)
dr1 := drehung(xAchse, 60)

dr2 := drehung(yAchse, 30)

Grafik( [wuerfel, 0.2],
[wuerfel::bild(dr1), gruen],
[wuerfel::bild(dr2), blau])

Die Determinanten der Abbildungsmatrizen haben den bei Drehungen auftretenden Wert 1
dr1::matrix::det, dr2::matrix::det
![]()
Es ist möglich, mit dem Operator " ° " eine Verknüpfung von Abbildungen vorzunehmen. Als Beispiel wird die nachfolgende Streckung mit der oben definierten zweiten Drehung verknüpft
str := streckung(v(5/2,5/2,5/2), 1.5)

Bei der Verknüpfung entsteht eine neue Abbildung, deren Wirkung darin besteht, dass auf ein Objekt zunächst die rechte Abbildung, auf das entstandene Bild dann die linke angewendet wird
abb := dr2 ° str

Grafik( [wuerfel, 0.2],
[wuerfel::bild(str), gruen],
[wuerfel::bild(abb), rot])

Beim Verknüpfen werden zur Ermittlung der neuen Abbildungsmatrix die beteiligten Abbildungsmatrizen miteinander multipliziert (die Multiplikation von Matrizen ist im allgemeinen nicht kommutativ, dadurch ist die Reihenfolge der Abbildungen bei der Verknüpfung im allgemeinen Fall nicht beliebig)
abb::matrix = dr2::matrix * str::matrix

In den Würfel werden jetzt zwei einander durchdringende Tetraeder eingebettet, wie die nachfolgende Grafik zeigt. Das ergibt den sogenannten Zwilling (eine bei Diamanten vorkommende Kristallform). Die Tetraeder werden als Pyramiden erzeugt, da die Seitenflächen eingefärbt werden sollen
blauT := Pyramide(Dreieck(p1, p3, p6), p8):
gruenT := Pyramide(Dreieck(p2, p4, p5), p7):
Grafik( [wuerfel, 0.1], [blauT, blau, Fuell], [gruenT, gruen, Fuell] )

Zur Darstellung der Schnittmenge der beiden Tetraeder (es ist eine Doppelpyramide) werden die Mittelpunkte der Würfelflächen und daraus zwei Pyramiden erzeugt
P1 := v(5/2,5/2,5): P2 := v(5/2,0,5/2): P3 := v(5,5/2,5/2):
P4 := v(5/2,5,5/2): P5 := v(0,5/2,5/2): P6 := v(5/2,5/2,0):
pyr1 := Pyramide(Viereck(P2, P3, P4, P5), P1):
pyr2 := Pyramide(Viereck(P2, P3, P4, P5), P6):
Durch Angabe einer Transparenz für die Tetraeder kann die Schnittmenge sichtbar gemacht werden
Grafik( [wuerfel, 0.1],
[blauT, blau.[0.2], Fuell], [gruenT, gruen.[0.2], Fuell],
[pyr1, Fuell, rot], [pyr2, Fuell, rot] )

Auf die Objekte in der Grafik wird eine Abbildung angewendet, bei der drei Einzelabbildungen hintereinander geschaltet sind. Die als lezte ausgeführte Drehung ist animiert
abb := drehung(zAchse, a) ° streckung(O, 2.5) ° verschiebung(v(-5/2,-5/2,-5/2)):
bereich := 0..360:
Grafik( [wuerfel::bild(abb), 0.1, bereich],
[blauT::bild(abb), blau, bereich],
[gruenT::bild(abb), gruen, bereich],
[pyr1::bild(abb), rot, Fuell, bereich],
[pyr2::bild(abb), rot, Fuell, bereich] )

Grafik anklicken
Die Doppelpyramide wird nun als Koerper aus den beiden Pyramiden konstruiert. Das kann über die Umwandlung der beiden Pyramide-Objekte in Koerper-Objekte und die Erzeugung einer neuen Matrix aus den beiden Ecken-Matrizen erfolgen, die dann die Grundlage für den neuen Körper bildet (auf die Matrizen kann mit der Eigenschaft ecken zugegriffen werden; bei der Verkettung wurde ein Trennpunkt dazwischen gesetzt)
pk1 := pyr1::inKoerper: pk1::ecken;
pk2 := pyr2::inKoerper: pk2::ecken


m := pk1::ecken . v(x,x,x) . pk2::ecken

dP := Koerper(m)
![]()
Der Körper wird gedreht und seine Größe verdoppelt, dann werden sein Grund-, Auf- und Seitenriss dargestellt (sie entstehen auf der Grundlage von vordefinierten Parallelprojektionen)
dP1 := dP::bild( streckung(O, 2) ° drehung(zAchse, 15) )
![]()
sichtBox(-12..12):
Grafik( [dP1, 0.2],
[dP1::bild( grundriss ), gruen],
[dP1::bild( aufriss ), blau],
[dP1::bild( seitenriss ), braun])

Diese Bilder können auch 2-dimensional dargestellt werden, analog zum folgenden Beispiel eines Schrägbildes. Es handelt sich um die im Schulalltag oft verwendete Kabinett-Projektion, die gemeinsam mit anderen Projektionen ebenfalls vordefiniert ist
dP2 := dP::bild( streckung(O, 2) ° verschiebung(v(-5/2,-5/2,-5/2)) )
![]()
dP_kab := dP2::bild(kabinett)
![]()
dP_kab::graf2d

Über die vordefinierten Abbildungen hinaus können weitere Abbildungen mittels ihrer Matrizen und Verschiebungsvektoren erzeugt und auf agla-Objekte angewendet werden (dabei müssen auch die entstehenden Bilder agla-Objekte sein)
Weitere Einzelheiten können der Dokumentation zum Paket entnommen werden