Thread Graph im Canvas zeichnen: Graph im Canvas zeichnen (17 answers)
Opened by michael25 at 2005-08-31 11:24

michael25
 2005-08-31 11:24
#44457 #44457
User since
2005-08-31
23 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

ich versuche gerade, ein Programm zum Zeichnen vom Graphen auf dem Tk::Canvas zu erstellen. CPAN habe ich diesbezüglich schon durchsucht: GraphViz u. ä. eignet sich für meine Zwecke eher weniger, da ich die Koordinaten festlegen muss, an denen ein Knoten gezeichnet werden soll.

Zu diesem Zweck habe ich begonnen, von Tk::Canvas eine Klasse abzuleiten, die die Methoden "createNode" und "createEdge" besitzt.

createNode soll:
- Einen Knoten an den Mauskoordinaten zeichnen, und zwar
entweder als Kreis (z.B. createLine), Rechteck oder von einer
GIF-Datei.

createEdge soll:
- Zwei Knoten mit Hilfe einer Kante verbinden und zwar
durch eine direkte Linie, eine gebogene Linie (wie z.B. sie beim
Zeichnen von Automaten verwendet werden) oder
durch eine rechtwinklig gebogene Linie.

Auf dem Canvas soll der Benutzer auf zwei Knoten hintereinander klicken und diese sollen dann durch eine Kante verbunden werden. Auch eine Verbindung eines Knotens mit sich selbst soll möglich sein (mit gebogener Linie).

Die Kanten sollen natürlich am Rand des Knotens starten und enden und nicht an der Stelle mitten im Knoten, auf die der Benutzer geklickt hat. Wie könnte man das lösen (das mit dem Kantenstart- und endpunkt, aber auch für jeden weiteren Tip bin ich sehr dankbar, z.B. Gibt es eine Möglichkeit, gebogene und rechtwinklig gebogene Kanten zu zeichnen)?

Oder noch besser: Gibt es bereits eine Lösung zu diesem Problem (und ich habe sie nur übersehen), die diesen Anforderungen entspricht?

Schon mal vielen Dank!
Michael

View full thread Graph im Canvas zeichnen: Graph im Canvas zeichnen