MuPAD Education Group: Kostenlose Materialen für MuPAD Pro:
www.sciface.com/education, schule.mupad.de, studium.mupad.de, mupad.zum.de.

_________________________________________________________________________________

 

Inhalt....: Abbildung regelmäßiger Figuren

Kategorie.: Arbeitsblatt

Mathematik: Geometrie R^2, Lineare Algebra

MuPAD.....: 3.1.0

Datum.....: 2005-01-22

Autoren...: Kai Gehrs <acrowley@mupad.de>

Funktionen: matrix, plot, plot::Point, plot::Pointlist, linalg::nrows

Funktionen: linalg::col

_________________________________________________________________________________

 

Abbildung regelmäßiger Figuren

 

In diesem Arbeitsblatt stellen wir eine Funktion matrix2polygon vor, mit deren Hilfe sich

über Matrizen definierte regelmäßige Figuren in MuPAD darstellen lassen.

 

In der ebenen Geometrie ist es oft hilfreich eine Funktion zur Hand zu haben,

mit deren Hilfe sich schnell über eine entsprechende Matrix regelmäßige

Figuren im Zweidimensionalen zeichnen lassen. Dreiecke z.B. lassen sich

leicht in Form einer Matrix "codieren": Ist z.B. ein Dreieck durch die Lage

der Eckpunkte A = (0|0), B = (3|4) und C = (2|1) im Koordinatensystem

gegeben, so würde man gerne auf schnellem und unkompliziertem Wege

eine Darstellung der Form

image

mit MuPAD erstellen. Ist das Dreieck erst über eine Matrix definiert, so

bietet sich der Vorteil, dass Abbildungen der Ebene wie Streckungen

und Drehungen einerseits auf algebraischer Ebene mit dem CAS durch

Matrixmulitiplikationen realsiert werden können, man aber andererseits

auch sofort die Visualisierung der Transformation, die man gerade

durchgeführt hat, darstellen lassen kann. 

 

Im folgenden stellen wir die Prozedur matrix2polygon vor, mit deren

Hilfe sich leicht geometrische Objekte wie Dreiecke, Vierecke etc. und

auch ganz allgemeine Streckenkzüge ("Polygone") zeichnen lassen.

 

Die Prozedur matrix2polygon soll als Eingabe eine Matrix mit zwei

Zeilen und beliebig vielen Spalten der Form

 

image

 

erhalten. Jede Spalte der Matrix steht dabei für einen Punkt, dessen

x-Koordinate durch den entsprechenden Eintrag in der ersten Zeile

und dessen y-Koordinate durch den entsprechenden Eintrag in der

zweiten Zeile gegeben ist.

 

Hier also zunächst die Prozedur:

 

matrix2polygon:= (A) ->

  if linalg::nrows(A) = 2 then

    plot::Polygon2d(linalg::transpose(A),

                    PointsVisible, GridVisible,

                    Scaling = Constrained)

  else

    error("n x 2 matrix erwartet");

  end_if:

 

Wir sehen im Programmcode bereits, dass sinnvolle plot-Optionen wie

GridVisible =  Automatic und Scaling = Constrained (über das

Koordinatensystem werden Gitterlinien gelegt und die Skalierung der

Graphik bleibt "originalgetreu") fest eingebaut sind. Möchte man auf eine

dieser Optionen verzichten, so ist es ein Leichtes schlicht die entsprechende

Zeile im Programmcode der Prozedur matrix2polygon zu löschen.

 

Rückgabewert der Prozedur ist entweder ein grafisches Objekt, das

wir dann mit dem plot-Befehl von MuPAD zeichnen lassen können,

oder die Fehlermeldung "n x 2 matrix erwartet", wenn wir

eine Matrix von einem falschen Format eingegeben haben.

 

Nun testen wir die Prozedur an dem obigen Beispiel des Dreiecks

mit den Eckpunkten A = (0|0), B = (3|4) und C = (2|1). Die Spalten

der Matrix sollen die Eckpunkte des Dreiecks definieren:

 

Dreieck:= matrix([[0,3,2],

                  [0,4,1]])

math

plot(matrix2polygon(Dreieck)):

MuPAD graphics

Offensichtlich ist dies nicht ganz das, was wir uns vorgestellt hatten.

Es genügt nicht, die Eckpunkte anzugeben, sondern wir müssen, wenn

wir eine geschlossene Figur zeichnen wollen, vom "letzten" Eckpunkt

nochmals zurück zum "Startpunkt" laufen. In unserem Fall bedeutet

dies einfach, dass wir den Eckpunkt A = (0|0) noch einmal als letzten

Punkt in die Matrix Dreieck hineinschreiben müssen:

 

Dreieck:= Dreieck . matrix([0,0])

math

plot(matrix2polygon(Dreieck)):

MuPAD graphics

Dies ist genau die Zeichnung, die wir oben in der Einleitung schon als

Beispiel gesehen hatten.

 

Auch zufällige Figuren können wir leicht mit Hilfe der Prozedur

matrix2polygon darstellen: Z.B. können wir Zufallszahlen im

Bereich von 1 bis 6 erzeugen und so beliebige Streckenzüge

zeichnen:

 

zufallsEcken:= random(1..6):

n:= 5:

zufallsFigur:= matrix2polygon(

               matrix([[zufallsEcken() $ i = 1..n],

                       [zufallsEcken() $ i = 1..n]])):                                       

plot(zufallsFigur):

MuPAD graphics

Auch mehrere verschiedene Figuren lassen sich leicht in ein

gemeinsames Koordinatensystem zeichnen, indem man z.B. die

Matrizen, die einzelne Figuren definieren, in einer Liste zusammen-

fasst und anschließend mit dem Sequenzoperator $ über die

Elemente der Liste iteriert:

 

MuPAD:= [

  matrix([[0,0,1,2,2,1.5,1.5,1,0.5,0.5,0],

          [0,3,2,3,0,0,2,1.5,2,0,0]]),

  matrix([[2.5,2.5,3,3,4,4,4.5,4.5,2.5],

          [0,1.5,1.5,0.5,0.5,1.5,1.5,0,0]]),

  matrix([[5,5,6.5,6.5,5.5,5.5,6,6,5.5,5.5,5],

          [0,3,3,1.5,1.5,2.5,2.5,2,2,0,0]]),

  matrix([[7,8,9,10,9.5,8.75,8.25,8,9,8,7.95,9.05,7.95,7.5,7],

          [0,3,3,0,0,2.5,2.5,1.75,1.75,1.75,1.5,1.5,1.5,0,0]]),

  matrix([[10.5,10.5,11,12,12,11,11,11.5,11.5,11,11,10.5],

          [0,3,3,2,1,0,2.5,2,1,0.5,0,0]])]:

 

plot(matrix2polygon(MuPAD[k]) $ k = 1..5, Height=40):

MuPAD graphics

________________________________________________________________________________

 

Anmerkungen:

 

1.  Weitere Anregungen finden Sie unter: http://schule.mupad.de bzw. http://studium.mupad.de

 

_______________________________________________________________________________

 

 

MuPAD Education Group: Kostenlose Materialen für MuPAD Pro:
www.sciface.com/education, schule.mupad.de, studium.mupad.de, mupad.zum.de.