Tutorial II - Ein Konkurrenzhypergraph

Ziel: Dieses Tutorial zeigt die Erzeugung von Hypergraphen. Dabei wird zu Beginn eine weitere Methode dargestellt, Knoten zu platzieren. Ausgehend davon werden die verschiedenen Arten erläutert, wie man Hyperkantenumrisse erzeugt.

Erzeugen der Knoten

Wir beginnen wieder im One-Click-Modus und erzeugen 11 beliebige Knoten. Dann öffnen wir die „Raster-Einstellungen “ aus dem Menü „Ansicht“ (kurz: Strg+ bzw. ⌘+R). Zunächst aktivieren wir den obersten Punkt „Raster aktivieren“. Wir stellen dann auf „synchron“ und bewegen einen Regler auf 50. Zusätzlich setzen wir noch einen Haken vor „Knoten am Raster ausrichten“. Diese Ausrichtung der Knoten ist jedoch lediglich im Standard-Modus aktiv, wir wechseln also in diesen unter Ansicht → Modus → Standard (kurz: Strg+ bzw. ⌘+4). Durch Ziehen kann nun jeder Knoten bewegt werden. Beim Loslassen der Maustaste wird der jeweilige Knoten am Raster ausgerichtet. Wir positionieren die Knoten also wie in Abbildung 1.


Abbildung 1: Ausrichtung der Knoten am Raster

Erzeugen der Hyperkanten und ihrer Umrisse

Zum Erzeugen eines Umrisses stellt „Gravel“ drei Möglichkeiten zur Verfügung. Diese schauen wir uns an drei Kanten einmal genauer an.

Ein Kreis.

Wir markieren die Knoten 4,5,10 und 11, die links in der Darstellung platziert sind und klicken mit der Rechten Maustaste auf den Hintergrund. In dem Menü wählen wir „Neue Hyperkante...“ und es öffnet sich ein Dialog zum Erstellen derselben. Dort sind die eben markierten Knoten bereits ausgewählt. Um eine Hyperkante mit den Standardwerten zu erzeugen ist also lediglich ein Klick auf „Hyperkante erstellen“ notwendig.

Damit hat der Hypergraph eine erste Hyperkante, die jedoch noch keinen Umriss besitzt. Um diesen zu erstellen, klicken wir mit der rechten Maustaste in der Liste auf die entstandene Hyperkante „E_{1}“ (im Ordner Hyperkanten) und wählen in dem Kontextmenü „Umriss bearbeiten...“. Dann ändert sich die Darstellung im Hauptfenster sowie die Elemente auf der rechten Seite: In der Anzeige werden alle bisher erstellten Hyperkanten und alle nicht an der aktuellen Hyperkante beteiligten Knoten ausgeblendet. Auf der rechten Seite werden Parameter angezeigt, die im Folgenden Beschrieben werden.

Das Bearbeiten eines Umrisses besteht aus zwei Schritten: Zunächst wird eine Grundform erzeugt. Diese wird im zweiten Schritt denn verändert, entweder global oder lokal. Für den Kreis genügt der erste Schritt. Dieser ist zu Beginn als Grundform bereits ausgewählt und lässt sich in der Darstellung einfach „aufziehen“. Seine Werte werden dann rechts eingetragen und können genauer angegeben werden.

Wir erstellen einen Kreis mit Mittelpunkt (150 150)T und einem Radius von 113, wie er in Abbildung 2 zu sehen ist. Dort sind auch die restlichen Buttons des ersten (erzeugenden) Modus zu sehen: Der „Prüfen“-Button startet die Prüfung der Validität des momentanen Umrisses. „Modifikation“ wechselt in den zweiten Modus, dazu später mehr. Da der Kreis als Umriss für uns schon das passende Resultat darstellt, setzen wir diesen als Umriss der Hyperkante E1, indem wir auf „Ok“ klicken.


Abbildung 2: Erzeugen eines Hyperkantenumrisses: Der Kreis. Er ist stets vom Grad 4 und lässt sich in seinen Daten rechts noch verändern

Interpolation. Für die nächste Hyperkante der Knoten 4,5 und 2 eignet sich die Interpolation sehr gut. Wir erstellen also mit diesen Knoten die Hyperkante „E_{2}“ und klicken wieder auf „Umriss bearbeiten…“. Allerdings wählen wir nun die Grundform „Interpolation“ in der ersten Auswahl und setzen danach den Polynomgrad auf 3. Damit sind mindestens 6 Interpolationspunkte notwendig, um einen Umriss berechnen zu können. Eine gute Anzahl sind etwa 2-3 Interpolationspunkte für jede Krümmung. Ein Klick erzeugt einen neuen Interpolationspunkt, ein Drag (Ziehen) ebenso.

Dabei werden in der Einstellung „Interpolationspunkte am Ende hinzufügen“ die Punkte genau in der Reihenfolge von der interpolierenden Kurve durchlaufen, wie sie erzeugt wurden. Bis zum ersten berechneten Umriss ist dies sinnvoll. Danach wird bei einem Drag die Kurve ohne den neuen Punkt weiterhin schwarz, die neue in Blau gezeichnet. So kann ein Interpolationspunkt gut platziert werden. Ebenso können existierende Interpolationspunkte verschoben werden, wenn man sie mit der Maus hin- oder herzieht.

In der Einstellung, Interpolationspunkte „dazwischen“ einzufügen, wird bei einem Klick die Position als neuer Interpolationspunkt zwischen zwei Bestehenden eingefügt, nämlich jenen, bei denen dieser neue Punkt am Nächsten an der Verbindungsstrecke liegt. Ein Klick mit der rechten Maustaste auf einen Interpolationspunkt löscht diesen.

Eine mögliche Kurve aus Interpolationspunkten für die Kante findet sich in Abbildung 3. Eine Kurve mit weniger Punkten sieht im Allgemeinen besser aus.

Abbildung 3: Erzeugen eines Hyperkantenumrisses: Die Interpolation. Die Kurve wird dabei so berechnet, dass sie alle gegebenen blauen Kreuze interpoliert. Diese können interaktiv erstellt, verschoben und gelöscht werden.

Konvexe Hülle. Für die Kante der Knoten 2,3,7,8 und 10 nutzen wir die dritte Möglichkeit zur Erzeugung: Die konvexe Hülle. Bei ihr muss lediglich ein Polynomgrad vorgegeben werden. Der Umriss wird dann aus den Knoten und dem Innenabstand (bei einer Hyperkante unter „Einstellungen“ im Tab „Ansicht“) berechnet. In diesem Beispiel ist der Innenabstand auf 14 anstelle des Standardwertes von 8 eingestellt. Mit einem Polynomgrad von 3 erhält man zunächst den Umriss wie in Abbildung 4.


Abbildung 4: Erzeugen eines Hyperkantenumrisses: Die konvexe Hülle. Die Kurve wird dabei um die konvexe Hülle herum unter Einhaltung des Innenabstandes erzeugt.

Modifikation einer existenten Kurve

Nun gefällt uns diese Form noch nicht ganz, aber schon fast. Wir klicken auf den Button „Modifikation“ und das Programm wechselt in den zweiten Modus, welcher der Modifikation eines Umrisses dient. Hat eine Hyperkante bereits einen Umriss und wählt man - entweder in der Liste oder per rechtem Mausklick auf die Kante - „Umriss bearbeiten…“ aus, so gelangt man ebenfalls in diesen Modus.

Die gesamten Buttons, die nun rechts aufgetaucht sind, werden hier erläutert. Solange keiner von ihnen aktiv (also angeklickt worden) ist, kann die Kurve verändert werden, indem wir sie durch Ziehen (begonnen auf der Kurve) in ihrer Form verändern. Da der Umriss eine NURBS-Kurve ist, bleibt der Einfluss stets lokal. Da dieser Einfluss bei der konvexen Hülle sehr weitreichend ist, klicken wir einmal auf den „+“-Button. Dann werden auf der Kurve die Stellen angezeigt, an denen die Knoten (der Kurve) liegen. Wir fügen auf den beiden Schrägen je einen Knoten etwa in der Mitte hinzu, indem wir die Kurve dort anklicken. Es entstehen zwei weitere hellblaue Punkte, wie sie in Abbildung 5 dargestellt sind.

Abbildung 5: Im „+“-Modus wurden durch Anklicken der Kurve oberhalb und unterhalb des (Graphen-)Knotens 2 zwei weitere Knoten auf der Kurve eingefügt.

Wir verlassen diesen Modus durch erneutes Anklicken des „+“-Buttons und bewegen die beiden Schrägen nach innen. Alle weiteren Modifikationen, die man mit dem Umriss vornehmen kann finden sich im Dialog zum Umriss. Wir verlassen die Bearbeitung durch Anklicken von „Ok“.

Nun sind die Umrisse fertig und nach ein wenig Feinschliff an den Knotennamen und deren Ausrichtung erhält man die TikZ-Grafik aus Abbildung 6a. Für eine weitere Hyperkante mit den Knoten 4 und 10 erzeugt die konvexe Hülle die direkte Verbindung, auch wenn das keinem Umriss mehr entspricht. Möchte man stattdessen einen richtigen Umriss haben, nutzt man entweder den Kreis als Ausgangsgrundform oder die Interpolation. Mit der Hyperkante E5 bestehend aus den Knoten 3,2 und 8 entsteht schließlich der zweite Hypergraph Aus Abbildung 6b.

Abbildung 6: Die zwei Hypergraphen, die in diesem Tutorial entstanden sind.