Package geo (Referenz)

Vektoren und Matrizen für ℝ2 und ℝ3

MuPAD wird um einige Funktionen bereichert. Es werden keine neuen Datentypen geschaffen; die Syntax wird behalten und um einige Plot-Optionen erweitert.

Als Bezeichner werden eingeführt:
  für Punkte A, B, C, D, F, G, ... (Der Bezeichner E ist in MuPAD reserviert.)
  für Vektoren  a_, b_, c_, d_, e_, f_, p_, q_, ...
  für Geraden  g_, h_, i_, ...
   für Ebenen  E_, F_, G_, ...
  für reelle Zahlen  r, s, t, x, y, z  (In der Parameterform und Normalenform steht x für eine Vektor.)

Funktion Beispiel
Punkt (1|2|3)
Punkt (1|2)
punkt(x,y,z) punkt(x,y) P := punkt(1,2,3) P := punkt([1,2,3]) P := [1,2,3] P := punkt(1,2)
Endpunkt des Ortsvektors v_ punkt(v_) punkt(vektor(1,2,3))
irgendein Punkt punkt() punkt(), punkt(2)
irgendein Punkt auf der Gerade g_ punkt(g_) punkt(gerade(1+r,r,r))
irgendein Punkt auf der Ebene E_ punkt(E_) punkt(ebene(2-2*s,r+s,r+2*s))
Prüfen von P auf "Punkt"-Eigenschaft istPunkt(P) istPunkt(punkt(1,2,3))
Ortsvektor im ℝ3
Ortsvektor2
vektor(x,y,z) vektor(x,y) v_ := vektor(1,2,3) v_ := matrix([1,2,3]) v_ := vektor(1,2)
Ortsvektor des Punktes P vektor(P) vektor(punkt(1,2,3))
irgendein Vektor vektor() vektor() vektor(2)
irgendein Richtungsvektor der Gerade g_ vektor(g_) vektor(gerade(1+r,r,r))
irgendein Richtungsvektor der Ebene E_ vektor(E_) vektor(ebene(2-2*s,r+s,r+2*s))
Prüfen von v_ auf "vektor"-Eigenschaft istVektor(v_) vektor(vektor(1,2,3))
Polygon, definiert durch Startpunkt bzw. Ortsvektor und weiteren Punkten oder Verbindungsvektoren polygon(P,Q,R) polygon(a_,b_,c_) polygon(P,a_,B,c_) p := polygon(punkt(1,2,3),punkt(1,2,5)) p := polygon(punkt(i,0,i^2/10) $i=0..5) P := [1,2,3] P := punkt(1,2)
Gerade im ℝ3
Gerade2
in Vektorform
gerade(x,y,z) gerade(x,y gerade(a_+r*u_) a_+r*u_ g_ := gerade(1+r,r,r) gerade(vektor(1,0,0)+r*vektor(1,1,1)) vektor(1,0,0)+r*vektor(1,1,1) g_ := gerade(1+r,r)
Gerade in Ortsvektor-Richtungsvektor-Form gerade(a_u_) gerade(vektor(1,0,0),vektor(1,1,1))
Gerade in Punkt-Richtungsform gerade(A,u_) gerade(punkt(1,0,0),vektor(1,1,1))
Gerade in Zwei-Punkte-Form gerade(P,Q) gerade(punkt(1,0,0),punkt(2,1,1))
irgendeine Gerade gerade() gerade() gerade(punkt(2),vektor(2))
irgendeine Gerade durch Punkt P gerade(P) gerade(punkt(1,2,3))
irgendeine Gerade in einer Ebene E_ gerade(E_) gerade(ebene(2-2*s,r+s,r+2*s))
irgendeine Gerade parallel zur Gerade h_ gerade(punkt(),h_) gerade(punkt(),vektor(gerade(1+r,0,1-r)))
irgendeine Gerade parallel zur Ebene E_ gerade(punkt(),E_) gerade(punkt(),vektor(ebene(2-2*s,r+s,r+2*s)))
Ortsvektor der Gerade g_ ortsvektor(g_) ortsvektor(gerade(1+r,r,r))
Richtungsvektor der Gerade g_ richtungsvektor(g_) richtungsvektor(gerade(1+r,r,r))
Achsenabschnitte der Gerade G (im R2) abschnitt(g_) abschnitt(gerade(1+r,r))
Spurpunkte der Gerade g (im R3) spur(g_) spur(gerade(1+r,r,r))
Prüfen von g_ auf "Gerade"-Eigenschaft istGerade(g_) istGerade(gerade(1+r,r,r))
Ebene in Vektorform ebene(x,y,z)
ebene(a_+r*u_+s*v_)
a_+r*u_+s*v_
E_ := ebene(2-2*s,r+s,r+2*s) ebene( vektor(2,0,0)+r*vektor(-2,1,2)+s*vektor(0,1,1) ) vektor(2,0,0)+r*vektor(-2,1,2)+s*vektor(0,1,1))
Ebene in Ortsvektor-Richtungsvektor-Form ebene(a_,u_,v_) ebene(vektor(2,0,0),vektor(-2,1,2),vektor(0,1,1))
Ebene in Punkt-Richtungsform ebene(A,u_,v_) ebene(punkt(2,0,0),vektor(-2,1,2),vektor(0,1,1))
Ebene in Drei-Punkte-Form ebene(A,B,C) ebene([2,0,0],[0,1,2],[2,2,2])
Ebene in Normalenform ebene(n_,a_) ebene(vektor(1,-2,2),vektor(2,2,2))
Ebene in Koordinatenform ebene(Koordinatengleichung) ebene(x-2*y+2*z=2)
irgendeine Ebene ebene() ebene()
irgendeine Ebene durch Punkt P ebene(P) ebene(punkt(1,2,3))
irgendeine Ebene durch Gerade g_ ebene(g_) ebene(gerade(1+r,r,r))
irgendeine Ebene parallel zur Gerade g_ ebene( punkt(), vektor(), richtungsvektor(g_) ) ebene( punkt(), vektor(), richtungsvektor(gerade(1+r,r,r)) )
irgendeine Ebene parallel zur Ebene F_ ebene( normalenvektor(F_), punkt() ) ebene( punkt(), op(richtungsvektor(F_) ) ebene( normalenvektor(ebene(1,r+s,s)), punkt() ) ebene( punkt(), op(richtungsvektor(ebene(1,r+s,s))) )
Umwandlung in Parameterform PF(E_) PF(ebene(2-2*s,r+s,r+2*s)) x = vektor(0, 0, 1) · r + vektor(1, 2, 0) · s + vektor(0, 0, 0)
Umwandlung in Normalenform NF(E_) NF(ebene(2-2*s,r+s,r+2*s))
skalarprodukt ( ( -1 2 -2 ) , x ) + 2 = 0
Umwandlung in Koordinatenform KF(E_) KF(ebene(2-2*s,r+s,r+2*s)) 2·y − x − 2·s + 2 = 0
Umwandlung in Achsenabschnittsform AF(E_) AF(ebene(2-2*s,r+s,r+2*s))
x2 - y + z - 1 = 0
Ortsvektor der Ebene E_ ortsvektor(E_) ortsvektor(ebene(2-2*s,r+s,r+2*s))
Richtungsvektoren der Ebene E_ richtungsvektor(E_) als Liste richtungsvektor(E_)[1] richtungsvektor(E_)[2] richtungsvektor(ebene(2-2*s,r+s,r+2*s)) richtungsvektor(ebene(2-2*s,r+s,r+2*s))[1] richtungsvektor(ebene(2-2*s,r+s,r+2*s))[2]
Normalenvektor der Ebene E_ normalenvektor(E_) normalenvektor(ebene(2-2*s,r+s,r+2*s))
Achsenabschnitte der Ebene E_ abschnitt(E_) abschnitt(ebene(2-2*s,r+s,r+2*s))
Spurgeraden der Ebene E_ spur(E_) spur(ebene(2-2*s,r+s,r+2*s))
Prüfen von E_ auf "Ebene"-Eigenschaft istEbene(E_) istEbene(E_)
Skalarprodukt zweier Vektoren skalarprodukt(a_,b_) a_ ** b_ skalarprodukt(vektor(n1,n2,n3),vektor(4,0,-1)) vektor(n1,n2,n3) ** vektor(4,0,-1)
Betrag eines Vektors betrag(v_) betrag(vektor(3,-1,2))
Winkelma? zwischen zwei Vektoren winkelmass(a_,b_) winkelmass(vektor(3,-1,2),vektor(4,0,-1))
In welchem Winkel schneiden sich die Geraden g_ und h_? winkelmass( richtungsvektor(g_), richtungsvektor(h_) )
In welchem Winkel schneiden sich die Geraden g_ und die Ebene E_? 90-winkelmass( richtungsvektor(g_), Normalenvektor(E_) )
In welchem Winkel schneiden sich die Ebenen E_ und F_? winkelmass( normalenvektor(E_), normalenvektor(F_) )
Abstand zwischen Punkten (Enden von Ortsvektoren), Geraden und/oder Ebenen abstand(P,Q) abstand(p_,q_) abstand(P,g_) abstand(P,E_) abstand(g_,h_) abstand(g_,E_) abstand(E_,F_) abstand(punkt(1,2,3),punkt(3,1,0)) abstand(vektor(1,2,3),vektor(3,1,0)) abstand(punkt(1,2,3),gerade(1+r,r,r)) abstand(punkt(1,2,3),ebene(2-2*s,r+s,r+2*s)) abstand( gerade(1+r,r,r), gerade(punkt(1,2,3), punkt(4,1,0) ) abstand( gerade(1+r,r,r), ebene(2-2*s,r+s,r+2*s) ) abstand( ebene(2-2*s,r+s,r+2*s), ebene([2,0,0],[0,1,2],[2,2,2]) )
Schnitt von Punkten (Enden von Ortsvektoren), Geraden und/oder Ebenen schnitt(P,Q), P#Q schnitt(p_,q_), p_#_q schnitt(P,g_), P#g_ schnitt(P,E_), P#E_ schnitt(g_,h_), g_#E_ schnitt(g_,E_), g_#E_ schnitt(E_,F_), E_#F_ schnitt(punkt(1,2,3),punkt(3,1,0)) schnitt(vektor(1,2,3),vektor(3,1,0)) schnitt(punkt(1,2,3),gerade(1+r,r,r)) schnitt(punkt(1,2,3),ebene(2-2*s,r+s,r+2*s)) schnitt( gerade(1+r,r,r), gerade(punkt(1,2,3),punkt(4,1,0)) ) schnitt( gerade(1+r,r,r), ebene(2-2*s,r+s,r+2*s) ) schnitt( ebene(2-2*s,r+s,r+2*s), ebene([2,0,0],[0,1,2],[2,2,2]) )
Sind die Vektoren a_ und b_ kollinear?
Sind die Vektoren a_, b_ und c_komplanar?
istVektor(a_#k*b_) istVektor(a_#r*b_+s*c_) istVektor( schnitt(vektor(1,2,3), k*vektor(2,4,6)) ) istVektor( schnitt(vektor(1,2,3), r*vektor(2,3,4)+s*vektor(3,4,5)) )
Sind die Geraden g_ und h_ identisch? istGerade(g_#h_) istGerade(schnitt( gerade([4,1,2],[4,-1,0]),gerade(4,r,r+1) ))
Sind die Geraden g_ und h_ parallel?
Sind die Geraden g_ und h_ windschief?
Ist die Gerade g_ parallel zur Ebene E_?
Sind die Ebene E_ und F_ zueinander parallel?
Zeichne   Punkt,   Ortsvektor,   Verbindungspfeil,   Gerade,   Ebene,   Winkel zeichne(P,a_,ab_,g_,E_,alpha) zeichne(   punkt(3,2,1),   vektor(3,2,1),   pfeil([3,2,1],vektor(2,1,2)),   gerade(vektor(0,0,0),vektor(2,1,2)),   ebene(vektor(2,1,2),vektor(3,2,1)),   winkel([3,2,1],vektor(1,0,0),vektor(0,0,1)) );
Zeichne Achsenabschnitte (für g_ im R2, für E_ im R3) abschnitt(E_) abschnitt(E_)[3] abschnitt(g_) abschnitt(g_)[1] abschnitt(ebene(vektor(2,1,2),vektor(3,2,1))) abschnitt(ebene(vektor(2,1,2),vektor(3,2,1)))[1] abschnitt(gerade(punkt(2,1),punkt(3,-1))) abschnitt(gerade(punkt(2,1),punkt(3,-1)))[1]
Zeichne Spurpunkte bzw. Spurgeraden (für g_ bzw E_) spur(E_) spur(E_)[1] spur(g_) spur(g_)[1] spur(ebene(vektor(2,1,2),vektor(3,2,1))) spur(ebene(vektor(2,1,2),vektor(3,2,1)))[2] spur(gerade(vektor(2,1,2),vektor(3,2,1))) spur(gerade(vektor(2,1,2),vektor(3,2,1)))[2]
Zeichne im Bereich zeichne( v_, ViewingBox=[xmin..xmax, ymin..ymax, zmin..zmax] ) zeichne(vektor(3,2,1),ViewingBox=[-4..4,-4..4,0..6])
Zeichne mit Farbe zeichne(v_,Color=RGB::Red) zeichne(vektor(2,1,2),Color=RGB::Red) zeichne(vektor(2,1,2,Color=RGB::Red))
Zeichne xyz-Koordinaten für Punkt, Vektor oder Verbindungspfeil zeichne(v_,Delta=TRUE) zeichne(v_,Delta=Color,RGB::Red) zeichne(vektor(2,1,2),Delta=TRUE) zeichne(vektor(2,1,2,Delta=TRUE)) zeichne(vektor(2,1,2),Delta=Color,RGB::Red) zeichne(vektor(2,1,2,Delta=Color,RGB::Red))
Zeichne auch Achsenabschnitte und Spurpunkte zeichne(g_,Dots=FALSE) zeichne(g) Voreinstellung: Dots=RGB::Blue zeichne(E_,Dots=RGB::Green) zeichne(E_) Voreinstellung: Dots=FALSE zeichne(gerade(4,r,r+1),Dots=FALSE) zeichne(gerade(4,r,r+1,Dots=FALSE)) zeichne(ebene(2-2*s,r+s,r+2*s),Dots=RGB::Green) zeichne(ebene(2-2*s,r+s,r+2*s,Dots=RGB::Green))
Zeichne auch Spurgeraden der Ebene zeichne(E_,LineLolor=RGB::Red) zeichne(E_) Voreinstellung: LineColor=FALSE zeichne(E_,Lines=TRUE) zeichne(E_) Voreinstellung: Lines=FALSE zeichne(ebene(2-2*s,r+s,r+2*s),LineLolor=RGB::Red) zeichne(ebene(2-2*s,r+s,r+2*s,LineLolor=RGB::Red)) zeichne(ebene(2-2*s,r+s,r+2*s),Lines=TRUE) zeichne(ebene(2-2*s,r+s,r+2*s,Lines=TRUE))
Zeichne Gitterraster der Ebene zeichne(E_,Raster=TRUE) zeichne(E_) Voreinstellung: Raster=(Filled)?FALSE:TRUE zeichne(ebene(2-2*s,r+s,r+2*s),Raster=TRUE) zeichne(ebene(2-2*s,r+s,r+2*s,Raster=TRUE))
Zeichne die gesamte Ebenenfläche (und nicht den Ausschnitt innerhalb eines Quadranten) zeichne(E_,Surface=TRUE) zeichne(ebene(2-2*s,r+s,r+2*s),Surface=TRUE) zeichne(ebene(2-2*s,r+s,r+2*s,Surface=TRUE))
Zeichne Szene bestehend aus mehreren Bildern

In zeichne können alle plot-Optionen weiterhin benutzt werden.

zeichne(szene(...),...,szene(...)) zeichne(   szene(     ebene(2-2*s,r+s,r+2*s,LineColor=RGB::Red),     punkt(1,2,3,Delta=TRUE)   ),   szene(     gerade(4,r,r+1,Dots=FALSE),     ebene(2-2*s,r+s,r+2*s,LineColor=RGB::Red)   ),   GridVisible=TRUE )

Nach Download der Datei geo.zip (07.11.06) wird der entpackte Ordner geo in das Verzeichnis packages des Programmordners kopiert.

Mögliche Erweiterungen:

Objekte:
  regelmäßiges Vieleck, Kreis
  Quader, Schiefquader, allg.: Kasten
  Pyramide, Schiefpyramide
  Kugel
  Zylinder, Schiefzylinder
  Kegel, Schiefkegel

Abbildungen

Animation