Eine Anekdote: Euklid ging mit seiner Frau Euklidia am Strand spazieren. Und er sprach also: „Ich habe einen neuen Zweig am Baum der Mathematik gefunden, die Geometrie.“ „Die euklidische Geometrie“, fügte er mit Stolz hinzu. Das Wort 'gefunden' wählte er mit Bedacht; er sagte nicht 'erfunden', weil er glaubte, dass die Mathematik von Zeus gemacht wurde und er sie nur noch zu entdecken brauchte. „In Arithmetik und Geometrie gibt es Gegenstände, Objekte mit denen, an denen Handlungen, Tätigkeiten ausgeführt werden, wodurch neue, andere Gegenstände erzeugt werden. In der Arithmetik kann man aus der unendlichen Menge der natürlichen Zahlen willkürlich zwei auswählen, sie einer Subtraktion unterwerfen und dabei einen neuen Zahlentyp, die rationale Zahl, erhalten. In der euklidischen Geometrie kann man zwei (verschiedene) Punkte auswählen und durch sie eine Gerade ziehen.“ (Aus zwei Punkten können Gerade und Kreis, aus Gerade und Kreis oder aus zwei Geraden oder aus zwei Kreisen oder aus Gerade und Kreis können Punkte erzeugt werden.)
Dann nahm er ein Stöckchen, zeichnete Figuren in den Sand und erläuterte: „Ich will dir an einem Beispiel, dem Fällen eines Lotes, die Leistungsfähigkeit und Schönheit der Geometrie zeigen.“ Er zeichnete, als wäre es Hexerei (so kam es Euklidia vor), Punkte, Geraden und Kreise und erhielt das Lot. So in etwa könnte die Stöckchenfigur ausgesehen habe.
Als eine besonders hohe Welle den Strand herauf schwappte und die Zeichnung auslöschte, sagte Euklidia, die praktisch, technisch und pädagogisch dachte: „Lass und morgen mit unseren Kindern wieder zum Strand gehen, und lass uns Bindfaden und Pflöcke mitnehmen. Damit lassen sich deine Ideen viel genauer umsetzen.“ ('als mit deinen krummen Linien und eiförmigen Kreisen', fügte sie als kluge Frau nicht hinzu.)
Und so - oder so ähnlich, allerdings ohne Farbe - sah die Figur am nächstenTage aus. Blau sind die Vorgaben, schwarz die Hilfslinien und grün das Ergebnis.
Viele Jahrhunderte später: Vielleicht dachte René Descartes nicht an die Vergänglichkeit der euklidischen Figuren im Sand, denn er konnte ja auf Papier zeichnen; vielleicht besorgte ihn die Reproduzierbarkeit seiner geometrischen Konstruktionen mit Tinte und Feder auf Papier. Wie würden sie nach mehrmaligem Kopieren mit Auge und Hand aussehen? Wie auch immer: Er erfand das später nach ihm benannte Koordinatensystem, das es ermöglichte, jeden Ort der Ebene mit seinem Abstand von der senkrechten (x-Wert) und waagerechten Achse (y-Wert) zu kennzeichnen. Zum Beispiel konnte er in natürlicher Sprache anweisen:
Zeiche einen Kreis mit Mittelpunkt Punkt(x=1, y=2) und Radius(r=3)oder vielleicht in Kurznotation
zeichne_kreis (1,2,3)Dreh- und Angelpunkt waren für ihn das kartesische Koordinatensystem und die Zahlenwerte, die auch nach seinem Tod es jedem Mathematiker ermöglichen würden, die gleiche Konstruktion zu reproduzieren. Weiter unten ist das Zeichnen von Punkten, Geraden und Kreisen näher beschrieben. Schon bei Euklid sind seine Sandzeichnungen (in der Anekdote) nur Visualisierungen einer Idee von Punkt, Gerade und Kreis. Decartes löst sich noch stärker von der grafischen Darstellung indem er Punkte, Geraden und Kreise als rein arithmetische Objekte darstellt. Er könnte Punkt(x,y), Kreis(mx,my,r), Gerade(y,x,c) geschrieben haben.
ax=10; // Punkt A ay=20; bx=30; // Punkt B by=40; radius = wurzel ( (ax-bx)^2+(ay-by)^2 ); svg_open; svg_kreis (ax,ay,radius); svg_close ('/tmp/filu/test_reca/euklid/hallo_kreis.svg');Dieses Programm erzeugt eine SVG-Datei, die wie oben einen Kreis enthält, allerdings mit einem berechneten Radius. Die SVG-Datei kann von den meisten Browsern dargestellt werden.
ax=1.0; ay=2.0; A Fvector (ax,ay); svg_open; svg_punkt A; svg_punkt (2, 3.0,'sd=1','sf=red'); svg_text (A,'Hallo Punkt','font-family:monospace;font-size:8pt'); svg_close;Erläuterung:
<text x='76.0' y='76.0' style='font-family:monospace;font-size:8pt'>Hallo Punkt </text>Zum Style-Argument siehe die HTML-Dokumentation.
Breite = 50; // Die Maße des Zeichenblattes Hoehe = 40; Rechts = 10; // Der Ursprung bezogen auf die linke untere Ecke Hoch = 5; svg_open (Breite,Hoehe,Rechts,Hoch); svg_kreuz 10; // kartesisches Koordinatenkreuz mit 10mm-Markierungen svg_rechteck (-Rechts+1,-Hoch+1,Breite-2,Hoehe-2); // Rahmen P Fvector (10,15); // xy-Koordinaten eines Punktes in mm svg_punkt (P,'sf=blue','sd=1'); // sf=Strichfarbe, sd=Strichdicke (in mm) svg_text (P,'Hallo Punkt','font-family:monospace;font-size:8pt'); svg_close ('/tmp/filu/test_reca/euklid/hallo_punkt.svg');
mx=1.0; my=2.0; r =10; K Fvector (mx,my,r); svg_open; svg_kreis K; // oder svg_kreis (1.0, 2.0, 10, 'sd=1', 'sf=red', 'ff=green'); // optional noch ff für Füllfarbe svg_close;
Neben dem Zeichnen von Punkten, Geraden und Kreisen können die in der Datei euklid.include definierten Funktionen zum Berechnen von Punkten genutzt werden.
Hier ein Beispiel:include '/tmp/filu/test_reca/euklid/euklid.include'; r = 20; // der Radius M Fvector 2; // M soll den Mittelpunkt aufnehmen G1 Fvector (-1,2,10); // die vorgegebenen Geraden G2 Fvector ( 2,1,20); schneide_gg3 (G1, G2, M); // berechnet den Schnittpunkt M K Fvector (M[0], M[1], r); // Kreis festlegen svg_open; svg_kreuz; // kartesisches Koordinatenkreuz svg_gerade G1; // die svg-anweisungen svg_gerade G2; // zeichnen die Objekte svg_kreis (K,'sf=red'); svg_punkt (M,"sf=blue","sd=2"); svg_close ('/tmp/filu/test_reca/euklid/schnittpunkt.svg');
Erklärung:
An Rechenfunktionen stehen zu Verfügung:
if (schneide__gg(G1,G2,E)==0) $='Geraden sind parallel!\n';
Wenn Funktion Lot häufiger gebraucht wird, kann man sie in euklid.include anhängen. Aus Gründen der Allgemeingültigkeit sollten aber noch die Fälle der Achsenparallelität abgefangen werden.
Beweise, dass die Ecke C im Thaleskreis über der Strecke AB einen rechten Winkel bildet! Seien A=(1,2) und B=(2,3) Errichte den Thaleskreis über der Strecke AB. Zeichne 2 radiengleiche Kreise um A und B derart, dass 2 Schnittpunke S1 und S2 gebildet werden. Zeichne Gerade g durch S1 und S2. g schneidet AB in Punkt M, welcher die Strecke AB halbiert. Zeichne den Thaleshalbkreis über AB mit dem Mittelpunkt B und dem Radius MA. Wähle eine beliebigen Punkt C auf dem Thaleskreis. Fälle das Lot von A auf die durch die Punkte B und C gehende Gerade, was den Punkt L ergibt. L und C sollten gleich sein. A Fvector (-1,0;) B Fvector ( 1,0;) svg_open; ab = abs(A-B); k1 = A,r; erg fvector 2; schneide (k1,k2,erg) svg_close '/tmp/filu/test_reca/euklid/thales.svg';(Bemerkung: Um nicht der Sprachverarmung Vorschub zu leisten, werden in dieser Dokumentation nicht Punkte, Geraden und Kreise "gezeichnet", sondern Punkte gesetzt, Geraden gezogen und und Kreise geschlagen.)