2021-06-30 18:43:52 +02:00
|
|
|
# Gruphi - Die Graph GUI
|
|
|
|
|
|
|
|
![](gruphi.png)
|
|
|
|
|
|
|
|
Um diese GUI nutzen zu müssen,
|
|
|
|
muss man die H1,
|
|
|
|
sprich die Klasse `h07.graph.DirectedGraphImpl`,
|
2021-07-11 16:36:36 +02:00
|
|
|
implementiert haben und eine Factory dafür erstellen.
|
|
|
|
Die Einfachste sieht in etwa so aus:
|
2021-06-30 18:43:52 +02:00
|
|
|
|
|
|
|
```java
|
2021-07-01 20:50:11 +02:00
|
|
|
public static <V, A> DirectedGraphFactory<V, A> defaultFactory() {
|
|
|
|
return DirectedGraphImpl::new;
|
2021-06-30 18:43:52 +02:00
|
|
|
}
|
|
|
|
```
|
|
|
|
|
2021-07-11 16:36:36 +02:00
|
|
|
Diese kann man in der Klasse [de.oshgnacknak.gruphi.GruphiMain](src/main/java/de/oshgnacknak/gruphi/GruphiMain.java)
|
|
|
|
angeben und die Main-Methode ausführen.
|
|
|
|
Weiter kann man dort einige Variablen setzten,
|
|
|
|
die in [de.oshgnacknak.gruphi.Gruphi](src/main/java/de/oshgnacknak/gruphi/Gruphi.java) definiert sind.
|
|
|
|
Unter anderem kann man hier auch seinen Dijkstra (H5) anmelden.
|
|
|
|
Viel Spaß!
|
2021-06-30 18:43:52 +02:00
|
|
|
|
|
|
|
# Streuerung
|
|
|
|
|
2021-07-01 23:37:45 +02:00
|
|
|
- Pfeiltasten, Vimkeys, Mittlere Maustaste:
|
|
|
|
Kamera bewegen
|
|
|
|
|
|
|
|
- Mausrad:
|
|
|
|
Zoomen
|
|
|
|
|
2021-06-30 18:43:52 +02:00
|
|
|
- `C`:
|
|
|
|
Graphen leeren
|
|
|
|
|
|
|
|
- `G`:
|
|
|
|
Graphen leeren und raster erzeugen
|
|
|
|
|
|
|
|
- Linke Maustaste:
|
|
|
|
Knoten erstellen
|
|
|
|
|
|
|
|
- Rechte Maustaste:
|
2021-07-11 16:36:36 +02:00
|
|
|
Knoten auswählen.
|
|
|
|
Startknoten (grün) auswählen löscht Pfäde.
|
2021-06-30 18:43:52 +02:00
|
|
|
|
|
|
|
- Escape, `Q`:
|
|
|
|
Beenden
|
|
|
|
|
2021-09-05 21:49:23 +02:00
|
|
|
- `U`, `I`:
|
|
|
|
Gewichtung für die nächste Kante verkleinern/vergrößern
|
|
|
|
|
|
|
|
- `O`:
|
|
|
|
Gewichtung für die nächste Kante auf 1 zurücksetzten
|
|
|
|
|
2021-09-05 22:47:54 +02:00
|
|
|
- `F`:
|
|
|
|
Berechne oder verstecke den minimalen Spannbaum (blau)
|
|
|
|
|
2021-06-30 18:43:52 +02:00
|
|
|
## Wenn Knoten ausgewählt (rot)
|
|
|
|
|
2021-07-01 23:37:45 +02:00
|
|
|
- WASD:
|
2021-06-30 18:43:52 +02:00
|
|
|
Knoten bewegen
|
|
|
|
|
2021-07-01 23:37:45 +02:00
|
|
|
- `X`, Entfernen, Rücktaste:
|
|
|
|
Knoten löschen
|
|
|
|
|
2021-06-30 18:43:52 +02:00
|
|
|
- Linke Maustaste:
|
2021-06-30 16:49:03 +00:00
|
|
|
Verbingung erstellen bzw. löschen,
|
2021-06-30 18:43:52 +02:00
|
|
|
wenn anderer Knoten geklickt.
|
|
|
|
Sonst Knoten teleportieren
|
|
|
|
|
|
|
|
- Rechte Maustaste:
|
|
|
|
Knoten unauswählen,
|
|
|
|
bwz. neuen Knoten auswählen
|
|
|
|
|
|
|
|
- `M`:
|
2021-06-30 16:49:03 +00:00
|
|
|
Labyrinth mit Knoten als Startknoten generieren
|
2021-07-11 16:36:36 +02:00
|
|
|
|
|
|
|
- `P`:
|
|
|
|
Pfäde mit Knoten als Startknoten generieren (grün).
|
|
|
|
Danach andere Knoten auswählen, um Pfäde zu sehen.
|