Vorlesung: Praxis der Funktionalen Programmierung


Parkette

klassisch, euklidisch

Wir haben eine endliche Menge von Bausteinen und sollen mit kongruenten Kopien davon die Ebene lückenlos und überlappungsfrei bedecken.

Ein Parkett heißt regulär, wenn die Bausteine reguläre Polygone sind (d. h. alle Seiten und Winkel sind gleich groß), und alle lokalen Umgebungen von Ecken des Parketts kongruent sind. (Die Liste der erlaubten Eckentypen ist endlich.)

Periodizität

Diese Parkette sind auch immer periodisch (d. h. es gibt wenigstens zwei Verschiebungen, die das Parkett auf sich selbst abbilden).

Es gibt zwei hinreichende Tests dafür, ob ein gegebenes Polygon (d. h. für uns: eine Menge von bereits zusammengebauten Parkettsteinen) eine periodische Parkettierung der Ebene gestattet:

(offensichtliche Bedingung)
auf dem Rand des Polygons liegen sechs Punkte A,B,C,D,E,F (in dieser Reihenfolge), so daß gilt: DE ~ BA, EF ~ CB, FA ~ DC, d. h. der Streckenzug von D bis E ist Bild des Streckenzuges BA (in dieser Orientierung) nach einer Parallelverschiebung, usw.
(Conways Bedingung)
auf dem Rand des Polygons liegen sechs Punkte A,B,C,D,E,F (in dieser Reihenfolge), und DE ~ BA und jeder der anderen vier Streckenzüge besitzt ein Drehzentrum (Drehung um 180 Grad bildet den Streckenzug auf sich selbst ab).
Programmieraufgabe: implementiere diese Tests, und erzeuge dann durch die entsprechenden Operationen (Verschiebungen, Drehungen) ohne weiteres Probieren die Parkettierung der Ebene.

In gekrümmten Räumen

Es gibt andere Modelle der geometrischen Axiome zum Beispiel endliche Geometrien. Interessant sind für uns solche Modelle, in denen wir Winkel (und Strecken und Flächen) messen können.

Hyperbolische Ebene

Der Grundbereich (Menge der Punkte) ist die obere Halbebene (komplexe Zahlen mit Imaginärteil >= 0), und die Modellgeraden sind Halbkreise mit Mittelpunkt auf der reellen Achse sowie Parallelen zur imaginären Achse.

Man mache sich klar, daß die Inzidenz-Axiome erfüllt sind. Im Gegensatz zum euklidischen Fall gibt es hier zu einer Geraden viele andere, die diese nicht schneiden, also "parallel" zu ihr sind.

Die Kongruenz--Abbildungen sind gebrochen lineare Transformationen f : z -> (az + b)/(cz + d) mit ganzen a,b,c,d mit ad - bc = 1. Das heißt bei Mathematikern eine Aktion von SL(2,R). Man rechne nach, daß

Hyperbolische Polygone haben immer eine Innenwinkelsumme, die unter der entsprechenden euklidischen liegt. Im Extremfall ist die Summe 0!

Was sind hyperbolische reguläre Polygone? Gleichwinkligkeit läßt sich leicht testen. Für die Gleichseitigkeit müßten wir etwas länger rechnen, oder wir sagen: solche Polygone haben einen Mittelpunkt, und jede Seite bildet mit diesem ein gleichschenkliges Dreieck. Damit müssen wir wieder nur Winkel vergleichen.

Welche regulären hyperbolischen Parkette gibt es? Viel mehr als euklidische! Wir können mit einem beliebigen regulären Dreieck beginnen, zum Beispiel einem mit drei Winkeln von 45 Grad. In jedem Eckpunkt passen dann acht solcher Dreiecke aneinander.

Programmieraufgabe (wird aber ein längeres Projekt): Berechne und zeichne reguläre hyperbolische Parkette aus wenigstens zwei verschiedenen Bausteinen.

Untersuche und ggf. benutze Periodizität.

(Hier ist ein bißchen Quelltext.)

Elliptische Ebene

Modellgeraden sind Großkreise auf einer Kugel (d. h. Kreismittelpunkt ist Kugelmittelpunkt), und Modellpunkte sind antipodale Punktpaare auf der Kugel (bzw., wenn wir einzelne Punkte wollen, nur Punkte auf der oberen Halbkugel, und den halben Äquator.)

Wiederum überzeuge man sich von der Gültigkeit der Inzidenzaxiome. Gibt es hier überhaupt parallele Geraden? Nein, beliebige zwei Geraden schneiden sich.

Wir betreiben hier tatsächlich sphärische Trigonometrie, die Kongruenzabbildungen sind Drehungen der Kugeloberfläche, also SO(3,R). Wiederum ist klar, daß das eine ordentliche Bewegungsgruppe ist, und wie wir Winkel messen. Sogar die Längenmessung ist jetzt einfach.

Reguläre Polygone definieren wir wie gehabt. Welche regulären Parkettierungen gibt es? Sicher einige, zum Beispiel aus Vierecken mit Eckenwinkeln von 120 Grad, davon brauchen wir sechs Stück - das ist tatsächlich das Bild eines Würfels, von innen auf die Kugeloberfläche projiziert. Wir erhalten also die regulären Polyeder (falls das Parkett nur einen Baustein hat) und die sogenannten halbregulären (bei mehreren Bausteinen), beispielsweise abgeschnittene Oktader (Eckentyp 3,6,6) oder snub cubes (Eckentyp 4,3,3,3,3).

Zu Polyedern siehe auch hier: http://www.cs.utk.edu/~plank/plank/pics/origami/origami.html.

Die Winkelsumme in Polygonen ist nun immer größer als im Euklidischen Fall, deswegen gibt es auch nur endlich viele reguläre Parkettierungen. Wir beachten weiterhin, daß auch jede Parkettierung endlich ist (nur endlich viele Steine enthält): bei der gegebenen (positiven) Raumkrümmung ist eben der Flächeninhalt des gesamten Raumes endlich. Die Frage nach der Raumkrümmung, und damit der Endlichkeit, kann man auch (eine Dimension höher) für das Universum stellen, in dem wir leben.

Programmieraufgabe: zeichen die regulären elliptischen Parkette (d. h. halbreguläre Polyeder). Was ist mit Periodizität?

Programmiertechnik

Es geht um Modularität: die Entscheidung, ob ein Stein an den anderen paßt, fällt allein durch Betrachtung von Winkeln. Das geht in jeder der betrachteten Geometrien! (Quelltext).

Die Eingabe für den Parkettierer ist lediglich die Liste der erlaubten Bausteine, gegeben durch ihre Innenwinkelfolgen. Über die Summe der Innenwinkel dürfen wir also nichts voraussetzen. (Beispiele für verschiedene Bausteine: reguläre Polygone, zwei Rhomben, ein L.) In jeder Ecke des Parketts muß aber die Summe der dort erscheinenden Ecken gleich einem Vollwinkel sein.

Nur das Zeichnen des Parketts hängt von der Geometrie ab. Hier sind einfach drei Module (Euklidisch, Hyperbolisch, Elliptisch) zu schreiben, die die passenden Begriffen von Geraden implementieren. (Beispiel: Euklidischer Quelltext.)

Literatur

(allgemein) Grünbaum, Shepard
Tilings and Patterns
(hyperbolisch) Koblitz
Elliptic Curves and Modular Forms (? oder so ähnlich)
(überhaupt) Felix Klein
Bücher in der Mathematik-Bibliothek suchen
(Biographie hier)

best viewed with any browser


http://www.informatik.uni-leipzig.de/~joe/ mailto:joe@informatik.uni-leipzig.de