Login
Newsletter
Werbung

Mo, 11. Januar 2010, 07:00

Erstellen geometrischer Skizzen mit kig

In dem Sprichwort »Ein Bild sagt mehr als 1.000 Worte« steckt viel Wahres. Wer einen Text verfasst, macht diesen durch ergänzende Skizzen oft wesentlich verständlicher als durch die ausgefeiltesten Beschreibungen. In diesem Artikel geht es darum, wie man mit Hilfe des Programms kig und geeigneter Nachbearbeitung hochqualitative geometrische Skizzen, z.B. zur Einbindung in LaTeX-Dokumente, erstellen kann.

Einführung

Das menschliche Gehirn kann visuelle Informationen deutlich schneller verarbeiten als solche in Textform. Dazu gibt es ebenso ein Sprichwort: »Von der Lösung keine Spur, zeichne eine Planfigur!« Dies gilt zwar insbesondere in der Mathematik, aber auch in anderen Disziplinen helfen geometrische Skizzen beim Verständnis oder der Kommunikation über einen Sachverhalt. Solche Skizzen bestehen oft aus Punkten und Linien, sind also von ihrer Natur her gut skalierbar und sollten daher auch als Vektorgrafiken erstellt und eingebunden werden. (Im Gegensatz zu Pixelbildern sind Vektorgrafiken nicht als Bitmaps beschrieben, sondern als Menge von Punkten und Linien mit entsprechenden Koordinaten, so dass sie beliebig groß skaliert werden können.) Viele Mathematiker schwören für ihre Grafiken auf xfig, dessen Benutzeroberfläche aber nicht mehr ganz zeitgemäß wirkt. Auch mit Inkscape kann man schöne Vektorgrafiken zeichnen. Hier liegt der Fokus aber wohl eher auf künstlerischem Arbeiten denn auf exakten Konstruktionen.

Die genannten Programme haben für den hier betrachteten Anwendungszweck das Problem, dass sie die Grafiken nur anhand ihrer Form beschreiben, nicht anhand ihrer Semantik. Zwei Punkte auf einer Linie sind in Inkscape ausgefüllte Kreise mit einem gewissen Radius, die (zufällig) auf einer Linie mit bestimmter Länge und Winkel liegen; Inkscape hat keine Informationen darüber, dass die Linie durch die beiden Punkte erst definiert wird. Skaliert man diese Gruppe von Objekten, werden Kreisradius und Linienstärke entsprechend mitskaliert - was normalerweise auch erwünscht ist, nur führt dies zu unterschiedlich dicken Punkten und Linien in der Grafik, obwohl sie sich in ihrer Bedeutung nicht unterscheiden.

Abhilfe schafft das Programm »kig«, nach eigener Beschreibung ein Programm zum Erkunden von geometrischen Konstruktionen. kig kennt die Bedeutung der verschiedenen Objekte (»dies ist ein Schnittpunkt dieser beiden Linien«, »diese Linie ist die Mittelsenkrechte dieser Strecke« etc.) und ist daher hervorragend geeignet, um Skizzen zu erstellen, in denen dieser Bedeutung eine große Rolle zukommt. kig kann in den meisten Fällen über die Paketverwaltung der eigenen Linux-Distribution installiert werden oder ist als Teil des kdeedu-Pakets verfügbar (so auch in KDE für Windows).

Die Benutzeroberfläche von kig nach dem Programmstart

Tobias G. Pfeiffer

Die Benutzeroberfläche von kig nach dem Programmstart

Hinzufügen von Objekten

Die Bedienung von kig ist recht intuitiv: In der Symbolleiste links wählt man ein Objekt aus und klickt dann im Koordinatensystem an die Stelle, an der es platziert werden soll. Das einfachste Objekt, das kig kennt, ist ein Punkt, der irgendwo platziert werden kann. Hier kann durch Halten der Shift-Taste auch das angezeigte Gitter zum Einrasten oder gleich die Version »Punkt mittels Koordinaten« verwendet werden.

Nun kann man auch Objekte hinzufügen, die von anderen Objekten abhängen. Wählt man beispielsweise eine Strecke aus der Symbolleiste, muss man zwei existierende Punkte der Skizze auswählen, die dann die Lage der Strecke definieren. (Das stimmt eigentlich nicht ganz; Punkte sind die einzigen Abhängigkeiten, die man auch beim Positionieren des Objekts noch setzen kann.) Diese Strecke kann nun zur Definition anderer Objekte dienen, beispielsweise einer dazu orthogonalen (senkrecht stehenden) Geraden. kig zeigt dabei in der Statusleiste immer an, welche Art von Objekt als nächstes ausgewählt werden muss; in diesem Fall erst eine existierende Gerade oder Strecke, dann ein existierender (oder neu zu platzierender) Punkt.

Die Objekttypen, die kig bereitstellt, decken fast alle Wünsche ab: Neben Strecken, Halbgeraden und Geraden gibt es noch einige andere Objekttypen, die nur durch Punkte definiert werden, unter anderem Kreise, Kreisbögen, Kegelschnitte, Vektoren und Winkel. Dazu kommen Objekte, die wiederum von diesen abhängen können; neben den bereits erwähnten orthogonalen auch parallele Geraden, Winkelhalbierende und automatisch berechnete Schnittpunkte. Es können aber auch Punkte auf anderen Objekten platziert werden; diese werden dann (intern) nicht mehr über Koordinaten adressiert, sondern über einen Parameter, der die relative Position des Punktes auf dem Objekt beschreibt. So kann man z.B. einen Punkt auf einer Kreislinie platzieren und dieser kann sich dann nur noch auf dieser bewegen.

Eine komplexe kig-Szene mit Objektabhängigkeiten

Tobias G. Pfeiffer

Eine komplexe kig-Szene mit Objektabhängigkeiten

Jedes Objekt kann einen Namen zugewiesen bekommen (Rechtsklick auf das Objekt, dann »Namen einstellen«), der nahe diesem Objekt platziert werden kann. Es können separate Textfelder erstellt werden, die über Platzhalter auch variable Inhalte (z.B. Länge einer Strecke) enthalten können. Des Weiteren gibt es einige Operationen, die auf existierenden Objekten ausgeführt werden können, beispielsweise »Objekt an Gerade spiegeln« und »Objekt skalieren«, sowie einige fortgeschrittene Operationen für Freunde der projektiven und Möbius-Geometrie (z.B. Inversion an einem Kreis).

Veränderung der ganzen Szene nach Ändern weniger Ausgangsobjekte

Tobias G. Pfeiffer

Veränderung der ganzen Szene nach Ändern weniger Ausgangsobjekte

Oft müssen bei der Konstruktion von Skizzen Hilfslinien oder -punkte verwendet werden, die man in der endgültigen Version nicht mehr sehen soll. Dafür kann man auf die entsprechenden Objekte rechtsklicken und »Ausblenden« wählen. Sie verschwinden aus der Skizze, erscheinen aber im »Nachtsichtmodus« (im »Einstellungen«-Menü) und können dort noch bearbeitet werden.

Mit den vorgestellten Objekttypen und Operationen lässt sich bereits gut arbeiten, so kann man beispielsweise leicht die Spiegelung und Brechung von Lichtstrahlen darstellen. In der Tat ist es so, dass die Linien den korrekten Verlauf von Lichtstrahlen darstellen, denn hier wurde unter Einsatz von orthogonalen Geraden eine Oberflächennormale im Schnittpunkt von Strahl und Kreis konstruiert und dann an dieser Normalen gespiegelt, so dass das Gesetz Einfallswinkel gleich Ausfallswinkel erfüllt ist.

Objektabhängigkeiten ausnutzen

Obwohl das obige Beispiel schon zu den komplexeren zählt, hätte man es vielleicht in gleicher oder kürzerer Zeit so auch in xfig oder Inkscape anfertigen können - wobei Eigenschaften wie orthogonal zu oder gespiegelt an dort mit Augenmaß hätten gemessen werden müssen. Die Stärke von kig zeigt sich jedoch, wenn man nun ein Objekt der Skizze verändert (z.B. einen Punkt bewegt): Alle davon abhängigen Objekte bewegen sich entsprechend mit, d.h. sie verändern ihre Lage, Länge, Drehung etc. Verändert man beispielsweise in dem Beispiel die Richtung des ersten Strahls, werden alle davon abhängigen Strahlen automatisch mit verändert.

Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung