Inhalt
In dieser Demonstration soll eine erste Version des Geometrie-Paketes
von Herrn
Dr. Friedrich Schwarz, UNI-GH-Paderborn, vorgestellt werden. Dieses
Paket dient dazu Geometrie in der Ebene mit Hilfe eines Computer-Algebra
Systems zu veranschaulichen. Dieses ist einerseits mit Hilfe von
Visualisierungen der geometrischen Sachverhalte als auch durch
symbolisches Beweisen durch Anwendung von algebraischen Umformungen
implementiert.
Datentypen des Paketes
Innerhalb des Geometrie-Paketes sind verschiedene Datentypen mit Hilfe von
Domains implementiert. Die wichtigsten dieser Datentypen sind:
- Punkt - dient zur Beschreibung eines Punktes,
- Gerade - dient zur Beschreibung einer Gerade,
- Kreis - dient zur Beschreibung eines Kreises,
- Dreieck - dient zur Beschreibung einer Dreieckes und
- Kurve - dient zur Beschreibung einer Kurve.
Allen diesen Datentypen sind Methoden zugeordnet, die angeben, wie
eine Instanz dieses Typs erzeugt, ausgegeben oder bspw. gezeichnet werden so
ll.
Ein Dreieck wird hierbei durch drei Punkte beschrieben, die wir
zunächst definieren:
>> A:= Punkt(-4,2); B := Punkt(6,-4); C := Punkt(4,8);
Das entsprechende Dreieck erhalten wir dann mittels des Befehles
Um den Umkreis eines Dreieckes zu berechnen, benötigt man bekannterweise
den Schnittpunkt der drei Mittelsenkrechten sowie den Abstand zwischen
diesem Schnittpunkt und einem Eckpunkt des Dreiecks. Dieses wollen wir
anhand der Dreiecksseite, welche die Punkte A und B des Dreiecks verbindet,
explizit vorführen. Dazu bilden wir nun zunächst die Dreiecksseite s:
Dann berechnen wir den Mittelpunkt dieser Strecke durch den Befehl:
>> Mittelpunkt:= Geometrie::Mittelpunkt(s):
Für eine Strecke ist dabei die oben aufgerufene Methode wie folgt definiert:
>> Strecke::Mittelpunkt:= proc(s)
begin
P:= extop(s,1);
Q:= extop(s,2);
Punkt((extop(P,1) + extop(Q,1))/2,(extop(P,2) + extop(Q,2))/2)
end_proc:
Nun haben wir den Mittelpunkt der Dreiecksseite s und können in diesem
Punkt die Senkrechte zu dieser Seite berechnen:
>> Senkrechte:= Geometrie::Mittelsenkrechte(s):
Bisher ist es uns also gelungen, die Mittelsenkrechte zu der Dreiecksseite
s zu berechnen. Dieses kann man einfach mit Hilfe des folgenden Befehles
visualisieren:
>> Geometrie::zeichne([A],[B],[Mittelpunkt,rot],[s,gelb],[Senkrechte,gruen]);
Um nun den Umkreis des gegebenen Dreiecks D zu berechnen, führt man diese
Berechnungen für alle Seiten des Dreiecks durch. Die entsprechenden Befehle
sind in einer Prozedur zeichneUmkreis()
zusammengefaßt.
Wiederum definieren wir zunächst das Dreieck D durch seine drei Eckpunkte
A, B und C:
>> A:= Punkt(-4,2); B:= Punkt(6,-4); C:= Punkt(4,8);
>> D:= Dreieck(A, B, C):
Der Mittelpunkt des Inkreises eines Dreiecks ergibt sich gerade als Schnittpunkt
der drei Winkelhalbierenden des Dreiecks D. Wie wollen hier explizit die
Konstruktion der Winkelhalbierenden zwischen den Dreiecksseiten AB und AC
vorführen:
>> b:= Halbgerade(A,B):
>> c:= Halbgerade(A,C):
>> x:= Winkelfeld::Winkelhalbierende(Winkelfeld(b,c)):
>> Geometrie::zeichne([A,rot],[B,rot],[C,rot],[b,gruen],[c,gruen],[x,gelb]):
Führt man diese Berechnungen wiederum für alle Dreiecksseiten durch,
so erhält man schließlich die drei Winkelhalbierenden, deren Schnittpunkt
man berechnen kann. Ferner ist es möglich, den Abstand des Mittelpunktes
zu den Seiten des Dreiecks zu berechnen. Diese Berechnungen sind in einer
Prozedur zeichneInkreis()
zusammengefaßt:
Author:
Thorsten Schulze,
Frank Postel
Last update: 25 June 1996