GED ist ein Tool zum Visualisieren und Konstruieren
von Graphen auf einer grafischen Oberfläche.
Es handelt sich hierbei um Graphen aus der Graphentheorie,
einem Teilgebiet der diskreten Mathematik, nicht um
Funktionsgrafen.
Rechts auf dem Bild sieht man einen solchen Graphen.
Der Grapheneditor GED soll das werden, was ich mir während
meiner Diplomarbeit, die im Bereich der Graphentheorie angesiedelt
war, als Tool zur schönen Darstellung von
Graphen gewünscht hätte.
Auch habe ich erst mit Perl/Tk eine so einfache und
schöne Möglichkeit gefunden, meine Vorstellungen zu
verwirklichen.
Ich wünsche mir, dass GED Mathematiklehrenden und
-studierenden aus dem Bereich der Graphentheorie
eine Hilfe sein wird, wenn die Entwicklung weiter
fortgeschritten ist.
Da das Projekt seit Anfang Februar 2004 einen ersten Anwender
hat, ist es zu neuem Leben erwacht (nachdem die Entwicklung vorher
ein knappes Jahr pausierte).
Ich freue mich über Kommentare, Anregungen und Hinweise, wo
GED eingesetzt wird. Ich bin auch prinzipiell offen für
Vorschläge für weitere Features etc.
Eine Warnung an Entwickler: Da GED noch in einer ziemlich
frühen Phase der Entwicklung ist, kann sich noch viel am
Programm und seinem Aufbau ändern.
Das mir zunächst wichtigste habe ich aber geschaft:
Das Auslagern der Graphenfunktionalitäten in zwei Klassen,
die aufeinenander aufbauen.
Nachfolgeversion in Java:
Es gibt eine Nachfolgeversion des GED in Java, die ich ab
2012 entwickele.
Zum GED in Java kommt man hier:
GED-Editors in Java.
Eigenschaften:
GED bietet die Möglichkeit, Graphen mit der Maus auf einer
grafischen Oberfläche zu erstellen, zu bearbeiten und zu
speichern.
-
Ecken einfügen
-
Kanten zwischen zwei Ecken ziehen (Mehrfachkanten werden
noch nicht unterstützt).
Dabei hat man die Wahl zwischen vier Arten von Kanten:
- normale Kanten
- Pfeil hin
- Pfeil zurück
- Pfeil in beide Richtungen
-
Ecken auf zwei Weisen auf der Oberfläche verschieben
(schnell und schön).
-
Ecken mit allen inzidierenden Kanten löschen.
-
Kanten löschen
-
Ecken "mergen", darunter verstehe ich, dass die Ecke
entfernt wird und alle Nachbarn der Ecke untereinander
durch Kanten verbunden werden.
-
Speichern des Graphen ins eigene "ged2"- und "ged"-Format
möglich
(Die Formatbeschreibung wird als Kommentar in jeden
Dateikopf geschrieben, die Dateien werden als Textdateien
gespeichert.
-
Laden von Graphen aus dem ged2- und ged-Format.
-
Speichern eines Graphen unter einem anderen Namen.
-
Export des Graphen als Postscript-Datei.
-
Export des Graphen als LaTeX-Datei.
-
Schneller Zugriff auf die letzten 10 gespeicherten
Dateien.
-
Einige Kreise und vollständige Graphen können
über das Menü in der Mitte des Zeichenbereiches
eingefügt werden.
Auch den Mittelpunkt kann man einfügen lassen.
-
Man kann optional ein Gitternetz einblenden lassen,
dessen Rasterweite man wählen kann.
-
Optional kann man die Ecken beim Einfügen und
Verschieben auf den Schnittpunkten des Gitters einrasten
lassen.
-
Für die Ansicht lassen sich Eckenfarbe und Kantenfarbe
über ein Farbwahldialog wählen, allerdings bekommen im
Moment noch alle Ecken die gleiche Farbe und alle Kanten
die gleiche (möglicherweise andere) Farbe und diese
Farben werden auch noch nicht mit abgespeichert.
-
Man kann den Graphen in seinen Liniengraphen (oder
Kantengraphen) wandeln lassen.
-
Man kann sich die internen Daten in einem Extrafenster
anzeigen (dumpen) lassen und einen solchen Dump auch
einlesen.
-
Im Hilfemenü sind schon die folgenden Dialoge
vorhanden:
- Hilfe (Inhalt noch leer)
- Was sind Graphen? (Inhalt noch quasi leer)
- Anzeige der Historie
- Anzeige der Todoliste mit gesammelten Ideen für die
Weiterentwicklung in Stichworten
- Über GED
-
Man kann für die Ansicht den Eckenradius verstellen,
dies wird aber nicht mit gespeichert.
-
Historie: Man kann Änderungen am Graphen zurücknehmen
und wiederholen.
-
Eckenfarbe, -beschriftung, -größe, -wert und
Ausrichtungen für Beschriftung und Wert sowie
Kantenfarbe, -form, -stil, -beschriftung, -wert und
Ausrichtungen für Beschriftung und Wert können
per Kontextmenü ausgewählt werden.
Im ged2-Format werden diese Informationen mit
abgespeichert.
Geplant:
Folgende Punkte sind momentan unter anderem für die
Weiterentwicklung eingeplant:
-
Unterstützung von Mehrfachkanten
-
Hilfeseiten mit Texten und Bildern, sobald GED weiter ist,
so dass diese nicht dauernd überarbeitet werden
müssen.
Aktuelle Version
Es gibt neben der "aktuellsten" Version in Perl, vom Januar 2005,
inzwischen auch seit 2012 eine Version des
GED-Editors in Java.
Sie hat hat noch nicht alle Features der Perl-Version, wird aber nun,
2019, weiterentwickelt.
Version 0.1.0_beta01 vom 22.01.2005
Byte |
Zeilen |
Datei |
20.497 |
606 |
Graph::GED::Animation.pm |
12.071 |
308 |
Graph::GED::Basis.pm |
6.845 |
202 |
Graph::GED::Core.pm |
10.028 |
268 |
Graph::GED::Data.pm |
7.916 |
218 |
Graph::GED::Ecke.pm |
6.362 |
185 |
Graph::GED::FHist.pm |
9.769 |
309 |
Graph::GED::Geom.pm |
28.404 |
794 |
Graph::GED::Graph.pm |
114.909 |
2.828 |
Graph::GED::Graph2D.pm |
215.932 |
5.052 |
Graph::GED::Gui.pm |
40.425 |
1.000 |
Graph::GED::Historie.pm |
9.641 |
260 |
Graph::GED::Kante.pm |
12.127 |
326 |
Graph::GED::Logic.pm |
11.456 |
286 |
Graph::GED::Test.pm |
59.542 |
1.604 |
Graph::GED::Text.pm |
12.212 |
294 |
Graph::GED::TkTools.pm |
1.847 |
75 |
ged.pl |
579.983 |
14.615 |
|
-
devtools-Verzeichnis angelegt, Modul DevTools.pm und
programm mkversion.pl erstellt.
-
POD in Graph.pm: Methodenbeschreibung eingefügt.
-
POD in Graph2D.pm: Fehlende =backs ergänzt.
-
POD in Basis.pm: Methodenbeschreibung eingefügt.
-
POD in TkTools.pm: Methodenbeschreibung eingefügt.
-
Graph::GED::Animation angelegt (in Graph/GED/Animation.pm).
Als erster Schritt auf dem Weg zur Internationalisierung
ist dieses Modul in englischer Sprache dokumentiert.
-
Graph::GED::Gui erstellt und Tk-Funktionen aus ged.pl
dorthin ausgelagert.
-
Graph::GED::Logic erstellt und logische Funktionen aus
ged.pl dorthin ausgelagert.
-
Graph::GED::Data erstellt und Funktionen zum
Daten-Handling aus ged.pl dorthin ausgelagert.
-
Graph::GED::Text erstellt und Todo- und Historytexte
dorthin ausgelagert.
-
Graph::GED::Test erstellt und Test-Funktionen aus ged.pl
dorthin ausgelagert.
-
Liniengraphenerstellung verbessert: Daten des Graphen
werden vorher gespeichert und hinterher wieder hergestellt
(Farben, Gittereinstellungen, Hintergrundbild, ...).
-
Globale Daten nach Graph::GED::Core verschoben.
-
Diverse POD-Verbesserungen und Ergänzungen.
-
Neue Menüeinträge für die Perldoc-Anzeige der
neuen Module.
-
Kernfunktionalitäten von load_ged3 nach
load_ged3_from_string ausgelagert.
-
Kernfunktionalitäten von save_ged3 nach
save_ged3_to_handle ausgelagert.
-
Animationen erstellen, speichen und laden.
-
Animationsverwaltung
Bekannte Probleme:
-
changed-Anzeige funktioniert noch nicht wieder richtig,
da noch auf Graphenebene
-
Gelegentliche Probleme mit verschwindenden Graphen in der
Animation im Zusammenhang mit Zurücknehmen.
-
Animationsverwaltung ist bisher noch ohne Funktion, hier
soll man später die Animationselemente verschieben,
duplizieren und löschen können.
Neue Funktionen / Methoden:
- Graph::GED::Animation::_graphs
- Graph::GED::Animation::set_graphs
- Graph::GED::Animation::delete_graphs
- Graph::GED::Animation::graph
- Graph::GED::Animation::delete_graph_index
- Graph::GED::Animation::insert_graph_index
- Graph::GED::Animation::push_graph
- Graph::GED::Animation::pop_graph
- Graph::GED::Animation::_histories
- Graph::GED::Animation::set_histories
- Graph::GED::Animation::delete_histories
- Graph::GED::Animation::history
- Graph::GED::Animation::delete_history_index
- Graph::GED::Animation::insert_history_index
- Graph::GED::Animation::push_history
- Graph::GED::Animation::pop_history
- Graph::GED::Animation::clear
- Graph::GED::Animation::number_of_graphs
- Graph::GED::Animation::number_of_histories
- Graph::GED::Gui::tk_start
- Graph::GED::Gui::add_file_menu
- Graph::GED::Gui::bind_start
- Graph::GED::Gui::zeichnen_anfang
- Graph::GED::Gui::aendere_item
- Graph::GED::Gui::zeichnen_ende
- Graph::GED::Gui::refresh
- Graph::GED::Gui::clear
- Graph::GED::Gui::zeichne_ecke
- Graph::GED::Gui::zeichne_kante
- Graph::GED::Gui::lade_datei
- Graph::GED::Gui::speichere_datei
- Graph::GED::Gui::speichere_datei_als
- Graph::GED::Gui::export_nach_latex
- Graph::GED::Gui::export_nach_postscript
- Graph::GED::Gui::dump_eingeben
- Graph::GED::Gui::zeige_daten_an
- Graph::GED::Gui::zeige_daten_an_dumper
- Graph::GED::Gui::hilfe
- Graph::GED::Gui::graph_erkl
- Graph::GED::Gui::history
- Graph::GED::Gui::todo
- Graph::GED::Gui::show_perldoc
- Graph::GED::Gui::ueber_ged
- Graph::GED::Gui::canvas_groesse
- Graph::GED::Gui::waehle_eckenfarbe
- Graph::GED::Gui::waehle_kantenfarbe
- Graph::GED::Gui::historie_schalter_aktualisieren
- Graph::GED::Gui::context_menu
- Graph::GED::Gui::tk_cm_groessenwahl
- Graph::GED::Gui::tk_cm_kantenformwahl
- Graph::GED::Gui::tk_cm_kantenstilwahl
- Graph::GED::Gui::tk_cm_kantendicke
- Graph::GED::Gui::tk_cm_titelwahl
- Graph::GED::Gui::tk_cm_titelausrichtung
- Graph::GED::Gui::tk_cm_wertwahl
- Graph::GED::Gui::tk_cm_wertausrichtung
- Graph::GED::Gui::tk_beenden
- Graph::GED::Gui::clear_context_menu
- Graph::GED::Test::geom_test
- Graph::GED::Test::clone_test
- Graph::GED::Test::historie_test
- Graph::GED::Logic::beenden
- Graph::GED::Logic::struktur_einfuegen
- Graph::GED::Logic::raste_ein
- Graph::GED::Logic::erzeuge_liniengraphen
- Graph::GED::Logic::rueckgaengig
- Graph::GED::Logic::wiederholung
- Graph::GED::Logic::aenderung
- Graph::GED::Data::dump_data
- Graph::GED::Data::save
- Graph::GED::Data::load
- Graph::GED::Data::neue_datei
- Graph::GED::Data::add
- Graph::GED::Gui::start
- Graph::GED::Core::start
- Graph::GED::Graph2D::load_ged3_from_string
- Graph::GED::Graph2D::save_ged3_to_handle
- Graph::GED::Animation::save
- Graph::GED::Animation::load
- Graph::GED::Gui::lade_animation
- Graph::GED::Gui::speichere_animation
- Graph::GED::Gui::speichere_animation_als
- Graph::GED::Animation::filename
- Graph::GED::Gui::set_title
Entfernte Funktionen / Methoden:
- tk_start
- add_file_menu
- bind_start
- zeichnen_anfang
- aendere_item
- zeichnen_ende
- refresh
- clear
- zeichne_ecke
- zeichne_kante
- lade_datei
- speichere_datei
- speichere_datei_als
- export_nach_latex
- export_nach_postscript
- dump_eingeben
- zeige_daten_an
- zeige_daten_an_dumper
- hilfe
- graph_erkl
- history
- todo
- perldoc_ged_pl
- perldoc_graph_ged_basis_pm
- perldoc_graph_ged_ecke_pm
- perldoc_graph_ged_kante_pm
- perldoc_graph_ged_graph_pm
- perldoc_graph_ged_graph2d_pm
- perldoc_graph_ged_geom_pm
- perldoc_graph_ged_historie_pm
- perldoc_graph_ged_fhist_pm
- perldoc_graph_ged_tktools_pm
- ueber_ged
- canvas_groesse
- waehle_eckenfarbe
- waehle_kantenfarbe
- historie_schalter_aktualisieren
- context_menu
- tk_cm_groessenwahl
- tk_cm_kantenformwahl
- tk_cm_kantenstilwahl
- tk_cm_kantendicke
- tk_cm_titelwahl
- tk_cm_titelausrichtung
- tk_cm_wertwahl
- tk_cm_wertausrichtung
- tk_beenden
- clear_context_menu
- do_all_the_tests
- clone_test
- historie_test
- beenden
- struktur_einfuegen
- raste_ein
- erzeuge_liniengraphen
- rueckgaengig
- wiederholung
- aenderung
- dump_data
- save
- load
- neue_datei
- add
History
Version 0.0.39 vom 17.01.2005
Byte |
Zeilen |
Datei |
12.060 |
302 |
Graph::GED::Basis.pm |
7.918 |
218 |
Graph::GED::Ecke.pm |
6.364 |
185 |
Graph::GED::FHist.pm |
9.434 |
289 |
Graph::GED::Geom.pm |
27.022 |
697 |
Graph::GED::Graph.pm |
110.038 |
2.715 |
Graph::GED::Graph2D.pm |
40.356 |
999 |
Graph::GED::Historie.pm |
9.643 |
260 |
Graph::GED::Kante.pm |
12.203 |
294 |
Graph::GED::TkTools.pm |
276.125 |
6.487 |
ged.pl |
511.163 |
12.446 |
|
-
Contextmenüs werden jetzt auch unter Linux
gelöscht.
-
Verbesserung Zentrieren+Skalieren für den Fall xmin=xmax
und ymin=ymax.
-
Extension verbessert beim Speichern unter Linux.
Neue Funktionen / Methoden:
Version 0.0.38 vom 17.01.2005
Byte |
Zeilen |
Datei |
12.060 |
302 |
Graph::GED::Basis.pm |
7.918 |
218 |
Graph::GED::Ecke.pm |
6.364 |
185 |
Graph::GED::FHist.pm |
9.434 |
289 |
Graph::GED::Geom.pm |
27.022 |
697 |
Graph::GED::Graph.pm |
109.627 |
2.704 |
Graph::GED::Graph2D.pm |
40.356 |
999 |
Graph::GED::Historie.pm |
9.643 |
260 |
Graph::GED::Kante.pm |
12.203 |
294 |
Graph::GED::TkTools.pm |
271.774 |
6.364 |
ged.pl |
506.401 |
12.312 |
|
-
Verschiebebuttons mit transparentem Hintergrund, so dass
sie grau und nicht mehr weiß erscheinen.
-
nach_links() etc. nach Graph2D verschoben.
-
Buttons und Funktionalität für Zentrieren und
Zentrieren/Skalieren eingebaut.
-
Balloon-Texte für Bewegungs- und Skalierungsbuttons
hinzugefügt.
-
Verschiebung erfolgt jetzt um Gitterweite.
Neue Funktionen / Methoden:
- Graph::GED::Graph2d::zentrieren
- Graph::GED::Graph2d::zentrieren_skalieren
- Graph::GED::Graph2d::kleiner
- Graph::GED::Graph2d::groesser
- Graph::GED::Graph2d::nach_links
- Graph::GED::Graph2d::nach_rechts
- Graph::GED::Graph2d::nach_oben
- Graph::GED::Graph2d::nach_unten
Entfernte Funktionen / Methoden:
- nach_links
- nach_rechts
- nach_oben
- nach_unten
Version 0.0.37 vom 16.01.2005
Byte |
Zeilen |
Datei |
12.060 |
302 |
Graph::GED::Basis.pm |
7.918 |
218 |
Graph::GED::Ecke.pm |
6.364 |
185 |
Graph::GED::FHist.pm |
9.434 |
289 |
Graph::GED::Geom.pm |
27.022 |
697 |
Graph::GED::Graph.pm |
96.490 |
2.336 |
Graph::GED::Graph2D.pm |
40.356 |
999 |
Graph::GED::Historie.pm |
9.643 |
260 |
Graph::GED::Kante.pm |
12.203 |
294 |
Graph::GED::TkTools.pm |
221.184 |
5.094 |
ged.pl |
442.674 |
10.674 |
|
-
Neues Graphenformat 'ged3' eingeführt.
-
Buttons zum Verschieben des Graphen eingebaut.
Neue Funktionen / Methoden:
- Graph::GED::Graph2d::save_ged3
- Graph::GED::Graph2d::load_ged3
- nach_links
- nach_rechts
- nach_oben
- nach_unten
Version 0.0.36 vom 16.01.2005
Byte |
Zeilen |
Datei |
12.060 |
302 |
Graph::GED::Basis.pm |
7.918 |
218 |
Graph::GED::Ecke.pm |
6.364 |
185 |
Graph::GED::FHist.pm |
9.434 |
289 |
Graph::GED::Geom.pm |
27.022 |
697 |
Graph::GED::Graph.pm |
78.770 |
1.998 |
Graph::GED::Graph2D.pm |
40.356 |
999 |
Graph::GED::Historie.pm |
9.643 |
260 |
Graph::GED::Kante.pm |
12.203 |
294 |
Graph::GED::TkTools.pm |
265.375 |
6.209 |
ged.pl |
469.145 |
11.451 |
|
-
Defaultkantendicke ist jetzt nicht mehr 1, sondern wird im
Graphen mit abgespeichert und ist über das Menü
wählbar.
-
Menübeschriftung im Ansichtsmenü um
"Default " ergänzt (Eckenfarbe, Kantenfarbe...).
-
Dateiname wird jetzt in $Graph gehalten und mit
abgespeichert.
Der Grund ist, dass dies bei der Animation nötig ist.
Sollte die Datei geändert werden, so wird der flasche
gespeicherte Name beim Laden durch den richtigen
überschrieben.
-
Anzeige der Daten in ged-Formaten erfolgt jetzt über
Speicherung in einer temporären Datei.
-
Graph2d nach Graph2D umbenannt im Dateinamen und Klasse
einheitlich.
-
toLaTeX nach Graph2D verschoben.
Neue Funktionen / Methoden:
- Graph::GED::Graph2d::kantendicke
- Graph::GED::Graph2d::dateiname
- Graph::GED::Graph2d::save
- Graph::GED::Graph2d::load
- Graph::GED::Graph2d::toLaTeX
Entfernte Funktionen / Methoden:
Version 0.0.35 vom 14.01.2005
Byte |
Zeilen |
Datei |
12.060 |
302 |
Graph::GED::Basis.pm |
7.918 |
218 |
Graph::GED::Ecke.pm |
6.364 |
185 |
Graph::GED::FHist.pm |
9.434 |
289 |
Graph::GED::Geom.pm |
27.022 |
697 |
Graph::GED::Graph.pm |
69.733 |
1.776 |
Graph::GED::Graph2d.pm |
40.356 |
999 |
Graph::GED::Historie.pm |
9.427 |
257 |
Graph::GED::Kante.pm |
12.203 |
294 |
Graph::GED::TkTools.pm |
269.067 |
6.301 |
ged.pl |
463.584 |
11.318 |
|
-
aenderung() vor dem Beginn von Ecken-Verschiebungen
aufgerufen statt am Ende.
-
Ecken- und Kantennummern werden auf Wunsch angezeigt.
-
Neuer Button zum Löschen aller getroffenen Kanten.
-
Anzeige der internen Struktur im GED2-Format.
-
Alle Pfade zu den Bilderdateien um "$FindBin::RealBin/"
vorweg ergänzt, so dass man ged nicht aus dem
ged-Verzeichnis heraus aufrufen muss.
-
Hintergrundbild lässt sich laden, speichern,
auswählen (über Menü und Kontextmenü).
Neue Funktionen / Methoden:
- zeige_daten_an2
- Graph::GED::Graph2d::hintergrundbild
Version 0.0.34 vom 03.01.2005
Byte |
Zeilen |
Datei |
12.060 |
302 |
Graph::GED::Basis.pm |
7.918 |
218 |
Graph::GED::Ecke.pm |
6.364 |
185 |
Graph::GED::FHist.pm |
9.434 |
289 |
Graph::GED::Geom.pm |
27.022 |
697 |
Graph::GED::Graph.pm |
67.667 |
1.727 |
Graph::GED::Graph2d.pm |
40.356 |
999 |
Graph::GED::Historie.pm |
9.427 |
257 |
Graph::GED::Kante.pm |
12.203 |
294 |
Graph::GED::TkTools.pm |
256.160 |
6.010 |
ged.pl |
448.611 |
10.978 |
|
-
Ankerberechnungen beim Zeichnen von Ecken und Kanten
vereinfacht.
-
Planung für neues Speicherformat GED3 (siehe ToDo-
Liste).
-
Gitterwerte liegen jetzt in $Graph und werden im ged2-
Format auch mit abgespeichert und geladen.
-
Alle Perdocs können über das Hilfe-Menü
gesichtet werden.
-
Anzeigefensterfunktion in Graph::GED::TkTools um
Bindungen erweitert, insbesondere kann nun per Mausrad
gescrollt werden.
-
Gitterfarbe ist nun wählbar.
-
Änderungsanzeige rechts unten neben der Statusbar
('*' => geändert).
Beim Beenden wird jetzt nachgefragt, falls nicht gesicherte
Änderungen vorliegen.
-
Inhalt Löschen im Dateimenü.
-
Für Ecken- und Kantebeschreibungen und -gewichte sind
jetzt Farben wählbar.
Diese Farben werden auch im ged2-Format mit abgespeichert.
-
Die Gittereinstellungen sind nun auch per Kontextmenü
möglich.
Defaulteckenfarbe und -kantenfarbe lässt sich jetzt
auch per Kontextmenü einstellen.
-
Tooltip-Hilfe für die Bedienelemente wird in der
Statuszeile angezeigt.
Neue Funktionen / Methoden:
- Graph::GED::Graph2d::radius2delta
- perldoc_graph_ged_basis_pm
- perldoc_graph_ged_ecke_pm
- perldoc_graph_ged_kante_pm
- perldoc_graph_ged_graph_pm
- perldoc_graph_ged_graph2d_pm
- perldoc_graph_ged_geom_pm
- perldoc_graph_ged_historie_pm
- perldoc_graph_ged_fhist_pm
- perldoc_graph_ged_tktools_pm
Version 0.0.33 vom 02.01.2005
Byte |
Zeilen |
Datei |
12.060 |
302 |
Graph::GED::Basis.pm |
6.950 |
198 |
Graph::GED::Ecke.pm |
6.364 |
185 |
Graph::GED::FHist.pm |
9.434 |
289 |
Graph::GED::Geom.pm |
27.022 |
697 |
Graph::GED::Graph.pm |
61.731 |
1.600 |
Graph::GED::Graph2d.pm |
40.356 |
999 |
Graph::GED::Historie.pm |
8.407 |
237 |
Graph::GED::Kante.pm |
11.350 |
281 |
Graph::GED::TkTools.pm |
220.957 |
5.214 |
ged.pl |
404.631 |
10.002 |
|
-
Kantendicke eingeführt.
Das ged2-Format wurde um die Dicke ergünzt.
Vorübergehend wird beim Einlesen von ged2 auf die
Dicke nicht geprüft, so dass auch mit Version 0.0.32
erstellten ged2-Dateien eingelesen werden können.
-
Kantenstil (normal, gestrichelt odeer gepunktelt)
dargestellt.
-
Die Kanten werden nicht mehr von Eckenmitte zu Eckenmitte
gezogen, sondern von Eckenrand zu Eckenrand.
-
Refresh nach Kanten ziehen für Zeichnung von Eckenrand zu
Eckenrand.
-
Berücksichtigung individueller Eckendicken in
Graph2d::meint_ecke().
Neue Berechnung von delta aus dem radius.
-
tk_cm_farbwahl_klein() durch
Graph::GED::TkTools::farbwahl() ersetzt.
Dadurch fällt diese Funktion weg.
-
Kommentarpflege in Graph::GED::TkTools (pod).
-
Hintergrundfarbe wird jetzt im Graphen mit gespeichert und
lässt sich via Menü und via Kontextmenü
wählen.
Neue Funktionen / Methoden:
- tk_cm_kantendicke
- Graph::GED::Kante::dicke
- Graph::GED::TkTools::farbwahl
- Graph::GED::Graph2D::hintergrund
Entfernte Funktionen / Methoden:
Version 0.0.32 vom 01.01.2005
Byte |
Zeilen |
Datei |
12.060 |
302 |
Graph::GED::Basis.pm |
6.950 |
198 |
Graph::GED::Ecke.pm |
6.364 |
185 |
Graph::GED::FHist.pm |
9.434 |
289 |
Graph::GED::Geom.pm |
27.022 |
697 |
Graph::GED::Graph.pm |
60.143 |
1.567 |
Graph::GED::Graph2d.pm |
40.356 |
999 |
Graph::GED::Historie.pm |
8.041 |
229 |
Graph::GED::Kante.pm |
8.175 |
193 |
Graph::GED::TkTools.pm |
209.437 |
5.011 |
ged.pl |
387.982 |
9.670 |
|
- Neues Graphenformat 'ged2' eingeführt: Die
Eckeneigenschaften Farbe, Radius, Beschriftung, Wert,
Ausrichtung der Beschriftung und Ausrichtung des Wertes
und die Kanteneigenschaften Farbe, Stil, Beschriftung,
Wert, Ausrichtung der Beschriftung und Ausrichtung des
Wertes werden mit abgespeichert und geladen.
Außerdem noch die Standardwerte für Eckenfarbe, Radius
und Kantenfarbe. (Beim Laden und Speichern stehen nun
die Formate ged und ged2 zur Verfügung.)
- Kontextmenü für Ecken und Kanten hinzugefügt. Außer den
neuen obigen Eigenschaften kann man darüber auch Ecken
mergen, löschen, am Gitter ausrichten und Kanten löschen
und Kantenformen und -stile ändern.
- Ausgabe des Graphen als Dump im internen Menü.
- ToDo-Liste überarbeitet.
- Gitter wird nach Löschen angezeigt, falls dies vorher der Fall war.
- Funktionalität aus save und load nach Graph2D ausgelagert.
- Neue Attribute und Getter / Setter für obige Eigentschaften in
Graph::GED::Ecke.pm und Graph::GED::Kante.pm.
- Dokumentationen (pod).
Neue Funktionen / Methoden:
- zeige_daten_an_dumper
- context_menu
- tk_cm_farbwahl_klein
- tk_cm_groessenwahl
- tk_cm_kantenformwahl
- tk_cm_kantenstilwahl
- tk_cm_titelwahl
- tk_cm_titelausrichtung
- tk_cm_wertwahl
- tk_cm_wertausrichtung
- Graph::GED::Ecke::farbe
- Graph::GED::Ecke::radius
- Graph::GED::Ecke::titel
- Graph::GED::Ecke::gewicht
- Graph::GED::Ecke::titelpos
- Graph::GED::Ecke::gewichtpos
- Graph::GED::Kante::farbe
- Graph::GED::Kante::stil
- Graph::GED::Kante::titel
- Graph::GED::Kante::gewicht
- Graph::GED::Kante::titelpos
- Graph::GED::Kante::gewichtpos
- Graph::GED::Graph2D::save_ged
- Graph::GED::Graph2D::load_ged
- Graph::GED::Graph2D::save_ged2
- Graph::GED::Graph2D::load_ged2
Version 0.0.31 vom 08.12.2004
Byte |
Zeilen |
Datei |
12.060 |
302 |
Graph::GED::Basis.pm |
4.514 |
139 |
Graph::GED::Ecke.pm |
6.250 |
181 |
Graph::GED::FHist.pm |
9.372 |
291 |
Graph::GED::Geom.pm |
27.018 |
697 |
Graph::GED::Graph.pm |
42.883 |
1.042 |
Graph::GED::Graph2d.pm |
40.401 |
1.001 |
Graph::GED::Historie.pm |
5.149 |
139 |
Graph::GED::Kante.pm |
8.102 |
194 |
Graph::GED::TkTools.pm |
179.335 |
4.297 |
ged.pl |
335.084 |
8.283 |
|
- Ich habe meinen Grapheneditor um eine Historienfunktion
erweitert. Diese Funktionalität ist in einer extra
Klasse (Historie.pm, Graph::GED::Historie) enthalten,
die Klasse kann alle möglichen (von Graph::GED::Basis
abgeleiteten) Objekte speichern und verwalten.
Somit ist sie später universell einsetzbar, wenn alle
Fehler behoben sind. Die Ableitung von Graph::GED::Basis
ist deshalb nötig, weil die verwalteten Objekte eine clone-
und eine clear-Methode haben müssen, beides wird u.a. von
Graph::GED::Basis zur Verfügung gestellt.
Diese beiden Methoden kümmern sich um das saubere ko-
pieren bzw. Löschen der verwalteten Objekte. Dies wird
dann wichtig, wenn die Objekte nicht nur "flache Daten"
enthalten, sondern anonyme Arrays oder Hashes.
(Genaugenommen prüfe ich auch nicht auf die Ableitung von
Graph::GED::Basis, sondern nur, ob die übergebenen
Objekte die Methoden clone und clear beherrschen (mit can).)
Die Historie ist eine State-Machine (wem das nichts sagt:
es gibt verschiedene Zustände und definierte Übergänge
von Zustand zu Zustand und die Maschine "weiß", was sie
in welchem Zustand bei welcher Anforderung machen soll).
Ich unterscheide folgende Zustände:
- NORMAL
- NORMAL_ENDE
- NACH_RUECK
- NACH_RUECK_ANFANG
- NACH_WIEDER
- NACH_WIEDER_ENDE
Folgende "Anforderungen" bzw. von außen zugängliche
Methoden gibt es (neben new, clone und max):
- objekt_eintragen()
- rueckgaengig()
- wiederholung()
Zum Testen gibt es im Moment nur drei Speicherplätze in der
Historie, das werde ich natürlich später auch hochsetzen.
(Die Kommentarbeschreibung der Aktionen in den verschiedenen
Stati stimmt noch nicht, das werde ich nachbessern, wenn alle
Fehler behoben sind.)
Das Historienobjekt in ged.pl selbst ist in %Konfig
unter dem Schlüssel historie enthalten.
Es wird am Anfang mit new Graph::GED::Historie angelegt.
Das meiste funktioniert schon, aber mir ist noch ein Fehler
aufgefallen, den ich aber nicht genau lokalisieren und auch
nicht wiederholen konnte.
In der Betaversion ist in Graph/GED/Historie.pm der Debug-Level
auf 2, es gibt eine Extraausgabe in
historie_schalter_aktualisieren()
in ged.pl und die Fehlerausgaben in Tk-Fenster sind momentan
ausgeschaltet. Das wird später geändert.
Neue Funktionen / Methoden:
- historie_test
- rueckgaengig
- wiederholung
- aenderung
- historie_schalter_aktualisieren
- Graph::GED::Historie::_hist_eintrag
- Graph::GED::Historie::_hist_loesch_ersten_eintrag
- Graph::GED::Historie::_hist_loesch_eintrag
- Graph::GED::Historie::clone
- Graph::GED::Historie::objekt_eintragen
- Graph::GED::Historie::rueckgaengig
- Graph::GED::Historie::wiederholung
- Graph::GED::Historie::geaendert
Version 0.0.30 vom 12.02.2004
Byte |
Zeilen |
Datei |
10.131 |
255 |
Graph::GED::Basis.pm |
4.502 |
139 |
Graph::GED::Ecke.pm |
6.250 |
181 |
Graph::GED::FHist.pm |
9.372 |
291 |
Graph::GED::Geom.pm |
27.772 |
714 |
Graph::GED::Graph.pm |
42.383 |
1.033 |
Graph::GED::Graph2d.pm |
4.656 |
123 |
Graph::GED::Historie.pm |
5.149 |
139 |
Graph::GED::Kante.pm |
8.102 |
194 |
Graph::GED::TkTools.pm |
162.796 |
3.888 |
ged.pl |
281.113 |
6.957 |
|
- Kapselung der interenen Kanten/Ecken zusammenhänge durch vier Hilfsfunktionen
in Graph::GED::Graph2d (x_von_a, y_von_a, x_von_e und y_von_e), welche die
Koordinaten der Ecken ausgeben, die mit der Kante inzidieren.
Dann muss man später nur hier ändern, falls man doch mal die Ecken direkt in
die Kanten aufnehmen will.
- use FindBin; use lib "$FindBin::RealBin"; verwendet, damit man das Programm
(ohne Installation) nicht nur aus dem ged-Verzeichnis aus starten kann.
- Neues Modul Graph::GED::TkTools;
Darein anzeige_fenster ausgelagert und als optionalen Parameter eine Wahl
eingeführt, ob der erzeugte "Dialog" modal sein soll.
- Alle Hilfefenster unmodal gemacht.
- Stellen ausgemerzt, an denen trotz debug auf 0 noch etwas ausgegeben wurde.
(Hoffentlich alle.)
Neue Funktionen / Methoden:
- Graph::GED::Graph2d::x_von_a
- Graph::GED::Graph2d::y_von_a
- Graph::GED::Graph2d::x_von_e
- Graph::GED::Graph2d::y_von_e
- Graph::GED::Graph2d::x_von_a_index
- Graph::GED::Graph2d::y_von_a_index
- Graph::GED::Graph2d::x_von_e_index
- Graph::GED::Graph2d::y_von_e_index
- Graph::GED::TkTools::anzeige_fenster
Version 0.0.29 vom 11.02.2004
Byte |
Zeilen |
Datei |
10.118 |
253 |
Graph::GED::Basis.pm |
4.502 |
139 |
Graph::GED::Ecke.pm |
5.884 |
177 |
Graph::GED::FHist.pm |
9.367 |
291 |
Graph::GED::Geom.pm |
27.736 |
713 |
Graph::GED::Graph.pm |
40.250 |
1.003 |
Graph::GED::Graph2d.pm |
4.656 |
123 |
Graph::GED::Historie.pm |
5.149 |
139 |
Graph::GED::Kante.pm |
170.704 |
4.042 |
ged.pl |
278.366 |
6.880 |
|
- Clonefunktionalität fertig gestellt.
- POD bei einigen Klassen weiter gefüllt.
Neue Funktionen:
- clone_test
- Graph::GED::Graph2d::clone
- Graph::GED::Graph::clone
- Graph::GED::Basis::clone
Version 0.0.28 vom 10.02.2004
Byte |
Zeilen |
Datei |
167.508 |
3.905 |
ged.pl |
5.884 |
177 |
Graphen::GED::FHist.pm |
9.367 |
291 |
Graphen::GED::Geom.pm |
25.045 |
651 |
Graphen::GED::Graph.pm |
40.159 |
1.000 |
Graphen::GED::Graph2d.pm |
4.019 |
111 |
Graphen::GED::Ecke.pm |
5.149 |
139 |
Graphen::GED::Kante.pm |
8.480 |
200 |
Graphen::GED::Basis.pm |
4.656 |
123 |
Graphen::GED::Historie.pm |
270.267 |
6.653 |
|
- Basisklasse hinzugefügt, von der alle Klassen abgeleitet werden.
Dadurch entfällt _property in allen anderen Klassen und alle new-
Methoden werden einfacher.
Die Methode clone muss von allen Klassen, die Kontainer in ihrem Hash
haben, vie Graph, Graph2d überschrieben werden, damit
nicht die Referenzen auf die Kontainer, sondern die Inhalte kopiert
werden.
Clonefunktionalität noch nicht fertig, daher auskommentiert.
- Rumpfklasse Graph::GED::Historie für Zurücknahme und Wiederholung
angelegt (noch ohne Inhalt und ohne Verwendung. Benötig das clonen.
- Einige Fehler ausgemerzt, wo "Graphen::GED::" noch fehlte, etwa beim
Ermitteln der Canvasausdehnung (eingefügte Kreise und vollständige
Graphen landeten dadurch in der oberen linken Ecke).
Methoden in Basis.pm:
Version 0.0.27 vom 10.02.2004
Byte |
Zeilen |
Datei |
164.922 |
3.905 |
ged.pl |
5.884 |
177 |
Graphen::GED::FHist.pm |
9.367 |
291 |
Graphen::GED::Geom.pm |
26.238 |
676 |
Graphen::GED::Graph.pm |
37.453 |
941 |
Graphen::GED::Graph2d.pm |
7.295 |
173 |
Graphen::GED::Ecke.pm |
8.417 |
199 |
Graphen::GED::Kante.pm |
259.576 |
6.363 |
|
- Alle Module in den Namensraum Graph::GED:: verschoben.
- Tippfehler bei Load "for," statt "form" verbessert.
Version 0.0.26 vom 10.02.2004
Byte |
Zeilen |
Datei |
163.838 |
3.884 |
ged.pl |
5.875 |
177 |
GEDfhist.pm |
9.358 |
291 |
GEDgeom.pm |
25.986 |
676 |
Graph.pm |
37.248 |
941 |
Graph2d.pm |
7.283 |
173 |
Ecke.pm |
8.403 |
199 |
Kante.pm |
257.991 |
6.343 |
|
- Klassen für Ecken und Kanten eingeführt und die Graphenklassen um Hilfs-
funktionen erweitert, so dass die interne Datenstruktur vor ged.pl total
gekapselt ist.
Neue Methoden in Graph:
- _kanten
- setze_kanten
- loesche_kanten
- kante
- entnehme_kante
- fuege_kante_hinzu
Neue Methoden in Graph2d:
- _ecken
- setze_ecken
- loesche_ecken
- ecke
- entnehme_ecke
- fuege_ecke_hinzu
Methoden in Ecke.pm:
Methoden in Kante.pm:
- _property
- a
- e
- form
- inzidiert_mit_ecke
Version 0.0.25 vom 09.02.2004
Byte |
Zeilen |
Datei |
161.976 |
3.822 |
ged.pl |
5.875 |
177 |
GEDfhist.pm |
9.358 |
291 |
GEDgeom.pm |
21.707 |
545 |
Graph.pm |
32.073 |
795 |
Graph2d.pm |
230.989 |
5.630 |
|
- Bug beseitigt der Auftrat, wenn man im Gitterraster einrasten möchte ohne
es anzuzeigen.
- Eckenradiuseinstellung von der Oberfläche ins Menü verlagert (abreißbar)
- Gitterweitenmenü abreißbar gemacht
- Fehler behoben: Wurde im Farbwahlmenü ESC gedrückt, so kommt keine Farbe
zurück und die dargestellten Dinge (Ecken bzw. Kanten) verschwanden.
- POD angefangen mit Titel und Copyright, um die Sourcen zum Download anbieten
zu können. (Sie sind damit unter der Doppellizenz GPL / artistic, siehe
perldoc perlgpl bzw. perldoc perlartistic.)
Version 0.0.24 vom 09.02.2004
Byte |
Zeilen |
Datei |
156.599 |
3.713 |
ged.pl |
5.584 |
162 |
GEDfhist.pm |
9.064 |
273 |
GEDgeom.pm |
21.437 |
528 |
Graph.pm |
31.765 |
776 |
Graph2d.pm |
224.449 |
5.452 |
|
- linientyp, startecke, zx und zy sind jetzt nicht mehr in %Graph, sondern in
%Konfig, da diese Informationen inhaltlich nicht zum Graphen, sondern zum
Zeichnen desselben während des Linienziehens dienen.
- Gitterfarbe jetzt über %Konfig einstellbar, nicht mehr in der Funktion hart
verdrahtet.
- Funktionalität ins neue Modul GEDgeom.pm ausgelagert (abstand_punkt_linie,
punkt_abstand [und floor]).
- Erstes Bearbeiten Menü auskommentiert.
- Menüpunkt Ansicht erneuern aus dem Dateimenü entfernt (ist auch im
Ansichtsmenü gewesen)
- Neue Klasen Graph und Graph2d, in die viel Funktionalität ausgelagert wurde.
Ausgelagerte Funktionen (gelöscht):
- ecke_zu_nah
- ecke_zu_nah_ohne
- meint_ecke
- meint_kante
- r2d
- ecke_einfuegen
- ecke_loeschen
- ecke_mergen
- kante_existiert
- kante_einfuegen
- kante_loeschen
Ausgelagerte Funktionalitäten (entkernt):
- clear
- struktur_einfuegen
- erzeuge_liniengraphen
Neue Funktionen:
- waehle_eckenfarbe
- waehle_kantenfarbe
Funktionen in GEDgeom.pm:
- abstand_punkt_linie
- punkt_abstand
- floor
Methoden in Graph:
- new
- _property
- n
- m
- kantenform
- KantenA
- KantenE
- Kantenform
- ecke_einfuegen
- ecke_loeschen
- ecke_mergen
- kante_existiert
- kante_einfuegen
- kante_loeschen
- clear
Methoden in Graph2d:
- new
- radius
- delta
- eckenfarbe
- kantenfarbe
- EckenX
- EckenY
- ecke_einfuegen
- ecke_loeschen
- ecke_mergen
- clear
- ecke_zu_nah
- ecke_zu_nah_ohne
- meint_ecke
- meint_kante
- r2d
- struktur_einfuegen
- erzeuge_liniengraphen
Version 0.0.23 vom 08.02.2004
Byte |
Zeilen |
Datei |
181.451 |
4.425 |
ged.pl |
5.584 |
162 |
GEDfhist.pm |
187.035 |
4.587 |
|
- mit "use Tk::ErrorDialog;" werden jetzt grafische Fehlermeldungen erzeugt.
- anzeige_fenster() zum einfacheren Anzeigen der Daten in zeige_daten_an(),
hilfe(), graph_erkl(), history() und todo() verwendet.
- Bug der nicht mehr funktionierenden Linienarten außer normal behoben (es
fehlte ein Komma vor einem weiteren eingefügten Parameter [-fill]
von createLine() hinter -arrowshape).
Version 0.0.22 vom 08.02.2004
Byte |
Zeilen |
Datei |
179.294 |
4.374 |
ged.pl |
5.584 |
162 |
GEDfhist.pm |
184.878 |
4.536 |
|
- mit "use Tk::ErrorDialog;" werden jetzt grafische Fehlermeldungen erzeugt.
- anzeige_fenster() zum einfacheren Anzeigen der Daten in zeige_daten_an(),
hilfe(), graph_erkl(), history() und todo() verwendet.
Neue Funktionen:
Version 0.0.21 vom 07.02.2004
Byte |
Zeilen |
Datei |
182.814 |
4.489 |
ged.pl |
5.554 |
159 |
GEDfhist.pm |
188.368 |
4.648 |
|
- Geometry zur Größenermittlung in canvas_groesse() verwendet.
- Refresh wird jetzt per Event bei Größenänderungen des Fensters aufgerufen,
so dass das Gitter und auch die eingefügten Graphen an die aktuelle
Fenstergröße angepasst werden.
- Ecken und Kantenfarbe ist nun nicht mehr fest rot/schwarz, sondern
variabel $Graph{eckenfarbe} bzw. $Graph{kantenfarbe}.
- Ecken- und Kantenfarbe über Menü Ansicht wählbar.
- Waitcursor bei Liniengraphenberechnung eingeschaltet.
Version 0.0.20 vom 06.02.2004
Byte |
Zeilen |
Datei |
179.181 |
4.418 |
ged.pl |
5.554 |
159 |
GEDfhist.pm |
184.735 |
4.577 |
|
- Funktion zur Ermittlung der Canvasgröße vorbereitet und in refresh() und
struktur_einfuegen() eingebaut. Bisher wird aber nur ein fest eingetragenes
Größen-Quadrupel zurückgegeben.
- Verschiedenen Funktionen rund um Kanten und Ecken hinzugefügt und an anderen
Stellen aufgerufen. (Verlagerung von Komplexität).
- Eckenmergen realisiert.
- Todo-Texte aufgeräumt.
Neue Funktionen:
- canvas_groesse
- ecke_einfuegen
- ecke_loeschen
- ecke_mergen
- kante_existiert
- kante_einfuegen
- kante_loeschen
Version 0.0.19 vom 06.02.2004
Byte |
Zeilen |
Datei |
167.786 |
4.108 |
ged.pl |
5.554 |
159 |
GEDfhist.pm |
173.340 |
4.267 |
|
- Schnittstelle von load und save geändert, nun muss der Dateiname als Parameter angegeben werden.
- Neues Menü "Manipulatoren" mit dem Punkt "In Liniengraphen umwandeln".
- Umwandlung des Graphen in seinen Liniengraphen
Neue Funktionen:
Version 0.0.18 vom 06.02.2004
Byte |
Zeilen |
Datei |
163.121 |
3.982 |
ged.pl |
5.554 |
159 |
GEDfhist.pm |
168.675 |
4.141 |
|
- Einrastfunktion am Gitter eingebaut.
- Alle Funktionen mit Prototypen versehen und diese zu Beginn des Programms
genannt.
Neue Funktionen:
Version 0.0.17 vom 06.02.2004
Byte |
Zeilen |
Datei |
158.920 |
3.840 |
ged.pl |
5.816 |
167 |
GEDfhist.pm |
164.736 |
4.007 |
|
- Einfügen von groben Kommentarblöcken zur Abtrennung der Funktionen in
Oberfläche, Logik und Daten (Dateien), Sortieren der Funktionen.
- Verschieben der Kommentarblöcke unter den Anfang der Sub's, damit man ganze
Funktionen im Editor übersichtlich zusammenfalten kann.
- Es kann optional ein Gitterzetz in variabler Weite eingeblendet werden.
(Geplant ist das Optionale Einrasten beim Setzen und Verschieben von Ecken
auf den Ratserpunkten, die Variable und der Menüpunkt sind auch schon da,
die Funktionalität fehlt aber noch.)
Neue Funktionen:
Version 0.0.16 vom 05.02.2004
Byte |
Zeilen |
Datei |
151.988 |
3.658 |
ged.pl |
5.816 |
167 |
GEDfhist.pm |
157.804 |
3.825 |
|
- Viele globale Variablen in Hashes %Konfig und %Graph zusammengefasst.
Version 0.0.15 vom 18.03.2003
Byte |
Zeilen |
Datei |
142.919 |
3.581 |
ged.pl |
5.816 |
167 |
GEDfhist.pm |
148.735 |
3.748 |
|
- Linientypen werden nun über ein Hash definiert, das ein Kürzel als Schlüssel
und den schönen Langtext als Wert hat. Gespeichert word nur der Schlüssel,
beim Laden werden Werte in Schlüssel übertragen, um alte Dateien lesen zu
können.
- Beim schnellen Eckenverschieben wird nun nicht mehr auf Überschneidung mit
der Ausgangsecke getestet.
Version 0.0.14 vom 12.03.2003
Byte |
Zeilen |
Datei |
140.598 |
3.519 |
ged.pl |
5.816 |
167 |
GEDfhist.pm |
146.414 |
3.686 |
|
- Funktion dump_eingeben mit Leben gefüllt.
Neue Funktionen:
- dump_eingeben (war bisher nur ein Rumpf)
- load_dump (local in dump_eingeben)
Version 0.0.13 vom 17.02.2003
Byte |
Zeilen |
Datei |
136.747 |
3.405 |
ged.pl |
5.816 |
167 |
GEDfhist.pm |
142.563 |
3.572 |
|
- Verwaltung der zuletzt bearbeiteten Dateien in GEDfhist.pm / ged.pl eingebaut.
- Haupt-Menü in globaler Variable $Menu zugänglich gemacht (um die veränderten
bearbeiteten Dateien ins Menü eintragen zu können).
Dito $Menuefont, aber beide nur im Block mit tk_start und add_file_menu.
- Mainteil ans Ende verlegt, sonst sind die Blockvariablen nicht initialisiert.
Neue Funktionen:
- GEDfhist::load
- GEDfhist::save
- GEDfhist::add
- GEDfhist::array
- GEDfhist::min
- GEDfhist::max
- add
- add_file_menu
Version 0.0.12 vom 13.02.2003
Byte |
Zeilen |
Datei |
138.257 |
3.395 |
ged.pl |
- Speichern im LaTeX-Modus eingebaut
- Speichern im Postscript-Modus eingebaut
- Beim Doppelklick im Laden-Menü wird nun dieser nicht mehr im Canvas ausgewertet, dank Tk::after.
- Der ToDo-Text ist wieder an den Dateianfang gewandert, in eine globale
Variable. (Here-Dokument)
- Diese History angelegt und teilweise rekonstruiert, Versionsnummern
rückwirkend vergeben / korrigiert.
- Menü "Bearbeiten 2" mit kascadierenden Submenüs als Alternative zu Menü
Bearbeiten eingefügt.
- Menü Hilfe ist jetzt wieder rechtsbündig (durch letzten Seperator der
Menubar!).
- In do_all_tests Zeilen umgebrochen, so dass sie in die ersten 80 Zeichen pro
Zeile passen.
Neue Funktionen:
- history
- toLaTeX
- export_nach_latex
- export_nach_postscript
Version 0.0.11 vom 12.02.2003
Byte |
Zeilen |
Datei |
107.338 |
2.669 |
ged.pl |
- Funtion todo eingefügt, ToDo-Texte sind als HERE-Dokument in diese Funktion
gewandert.
- Grob geschätzte Versionsnummer $Version (5) und Datum $Datum eingefügt.
Version und Datum werden nun bei "Über GED" angezeigt.
- Grafische Elemente (Icons etc.) ins Unterverzeichnis res verschoben.
- Weitere Kn's (K8 bis K13, K20, K30, K40, K50, K99), sowie Cn's (C20, C30,
C40, C50, C99) sowie das Einfügen des Mittelpunktes in das Bearbeitenmenü
aufgenommen.
- ESC beendet nun nicht mehr das Programm, sondern Ctrl-B. Entsprechend wird
ESC in den Diversen Funktionen mit eigenen Toplevel-Windows hinterher auch
nicht wieder an $MW gebunden.
- Fehlermeldung in meint_kante ausgeben, wenn es uneindeutig ist.
- struktur_einfuegen erweitert / verbessert, Koordinatenberechnung ist nun
richtig. Schleifeninvariante Variablen vor der Schleife deklariert und
initialisiert.
Neue Funktionen:
Version 0.0.10 vom 12.02.2003
Byte |
Zeilen |
Datei |
98.898 |
2.492 |
ged.pl |
- Im Menü Bearbeiten kann man nun Kreise und vollständige Graphen einfügen
(C3, C4, C5, C6, C7, C8, C9, K3, K4, K5, K6, K7).
Neue Funktionen:
Version 0.0.9 vom 11.02.2003
Byte |
Zeilen |
Datei |
95.174 |
2.401 |
ged.pl |
- Gesamtes Menüsystem umgestellt nach ausführlichem Schmökern in den perldocs
(menu, ...), dies wurde in obigem Buch nicht vernünftig erklärt, jetzt hat
das Programm ein richtig "normales" Menü, in das man mit Alt-Buchstabe, Alt,
F10 wechseln und in dem man mit den Cursortasten gewohnt navigieren kann.
- Linientypennamen geändert (Nacharbeiten).
- -initialfile rausgenommen in speichere_datei_als.
Version 0.0.8 vom 10.02.2003
Byte |
Zeilen |
Datei |
88.312 |
2.249 |
ged.pl |
- Linientypennamen geändert.
- Durchgängigen Menufont in allen Menüelementen verwendet.
- Editbuttons in drei Gruppen (erzeugen, modifizieren und löschen) aufgeteilt
und optisch voneinander abgesetzt.
- Tests eingebaut, so dass man keine Kante einfügen kann, wenn nur eine Ecke da
ist etc.
- Kantenlöschen: Kantenzahl runterzählen und refresh eingebaut.
- Neues Icon auch bei "Über GED" verwendet.
- meint_kante mit der richtigen Funktion befüllt.
Neue Funktionen:
- abstand_punkt_linie
- punkt_abstand
- floor
- do_all_the_tests
Version 0.0.7 vom 08.02.2003
Byte |
Zeilen |
Datei |
71.673 |
1.863 |
ged.pl |
- Linientyp "Ecke" in "Ecke einfügen" geändert.
- Icon für GED erzeugt und dieses in tk_start dem MainWindow zugewiesen.
- Arbeitswerkzeugwahl nun über Editbuttons am oberen Rand und nicht mehr über
Radioboxes am rechten Rand.
Version 0.0.6 vom 05.02.2003
Byte |
Zeilen |
Datei |
65.573 |
1.724 |
ged.pl |
- $Debug wird als erste Variable definiert.
- Neue Methode "Ecke verschieben 2" (Linientyp).
- Linientyp "Linie" heißt jetzt "Kante".
- Neue Methode "Kante löschen" (Linientyp).
- Statuszeilenausgaben an verschiedenen Stellen eingebaut.
- Speichern _unter_ statt Speichern _als_.
- Ändern der Radiusgröße für die Eckenkreise führt jetzt ein automatisches
refresh durch, d.h. man sieht die Änderung gleich auf dem Bildschirm.
- Methoden zum Ecken verschieben (2 Stück) und Kanten löschen realisiert.
- Schleifen verhindert, d.h. Kanten dürfen nur noch zwischen verschiedenen
Ecken verlaufen.
- meint_ecke durch last beschleunigt.
- Parameter in clear() eingebaut, Bindungen werden nur auf Wunsch wieder
hergestellt.
- Viele Ausgaben abhängig von $Debug gemacht (verschiedene Level).
- Titelanzeige bei neue_datei und lade_datei geändert.
- Doppelten Aufruf von Save in speichere_datei verhindert.
- -initialdir in speichere_datei_als ausgebaut, wird mit absolutem Pfad
angegeben und führt dann zu Fehlern.
- graph_erkl mit neuem Toplevel-Window versehen.
- Hilfe mit neuem Toplevel-Window versehen.
Neue Funktionen:
- ecke_zu_nah_ohne
- meint_kante (aber noch nicht funktionstüchtig...)
Version 0.0.5 vom 04.02.2003
Byte |
Zeilen |
Datei |
49.134 |
1.283 |
ged.pl |
- Cwd zur Ermittlung des Arbeitsverzeichnisses verwendet. (-> $Pfad)
- in load Laden der Eckenzahl korrigiert und das Einlesen der Kanten eingebaut.
- $Pfad per -initialdir in speichere_datei_als verwendet.
Version 0.0.4 vom 04.02.2003
Byte |
Zeilen |
Datei |
48.289 |
1.253 |
ged.pl |
- $Debug und $Dateiname als globale Variablen eingeführt.
- $MW eingeführt.
- Hilfemenü um Graphenerklärung und "Über GED" erweitert.
- Acceleratoren im Menü eingebaut (Tastenkürzelanzeige).
- Dummy-Bearbeitenmenü und Internamenü eingebaut.
- Einige Tastaturbindungen vorgenommen.
- bind_start erhält jetzt das Canvas nicht mehr als Parameter
- Data::Dumper zu Debug-Zwecken verwendet.
- Einige Ausgaben von $Debug abhängig gemacht.
- beenden ruft nicht mehr save auf.
- clear erhält jetzt das Canvas nicht mehr als Parameter und setzt die globalen
Ecken / Kantenarrays auf leere Listen nachdem sie auf undef gesetzt wurden.
- zeichne_ecke bricht jetzt bei falschem Aufruf mit Fehler ab.
- zeichne_kante bricht jetzt bei falschem Aufruf mit Fehler ab.
- save schreibt in eine Datei ($Dateiname) und nicht nur auf den Bildschirm.
- ueber_ged, neue_datei, lade_datei, speichere_datei mit Leben gefüllt,
waren vorher leere Blöcke.
Neue Funktionen:
- dump_data
- load
- graph_erkl
- zeige_daten_an
- hilfe
- dump_eingeben (noch ohne Funktionalität)
Version 0.0.3 vom 04.02.2003
Byte |
Zeilen |
Datei |
29.915 |
800 |
ged.pl |
- Menü eingefügt.
- Skalaelement zur Größenänderung des Radius der Eckendarstellung eingefügt.
- Nach Eckenlöschen höhere Eckennummern korrigiert.
- Ausgabe aus beenden nach save verschoben, in beenden save aufgerufen.
- Debug-Startausgaben mit Funktionsnamen in jede Funktion eingebaut.
- In clear Motion-Bindung aufheben - Zeichenvorgang wird damit unterbrochen.
- Kantenzeichnen korrigiert.
Neue Funktionen:
- save
- ueber_ged (leerer Rumpf)
- neue_datei (leerer Rumpf)
- lade_datei (leerer Rumpf)
- speichere_datei (leerer Rumpf)
- speichere_datei_als (leerer Rumpf)
Version 0.0.2 vom 03.02.2003
Byte |
Zeilen |
Datei |
25.370 |
678 |
ged.pl |
- Ideensammlung relativ am Anfang der Datei als Kommentare eingefügt.
- $Canvas eingeführt.
- weitere globale Variablen: $N, $Radius, $Delta, @EckenX, @EckenY, @KantenA,
@KantenE, @Kantenform, $M, $KantenA, $Kantenform, $Zx, $Zy.
- Clear-Button rechts oben eingefügt.
- Quit- und Refresh-Button eingefügt.
- ESC an Programmende und F5 an refresh gebunden.
- Zeichenanfangsecke ($KantenA) und Kantenform ($Kantenform) merken.
- Eckenkoordinaten beim Zeichnen in den Arrays ablegen und $N hochzählen.
- Eckenlöschen eingebaut.
- Kanten dürfen nur noch in der Nähe von Ecken beginnen und enden und rasten
dann auf diesen ein.
Neue Funktionen:
- ecke_zu_nah
- meint_ecke
- beenden
- r2d
- refresh
- clear
- zeichne_ecke
- zeichne_kante
Version 0.0.1 vom 31.01.2003
Byte |
Zeilen |
Datei |
6.882 |
195 |
ged.pl |
Aufbauend auf dem Beispiel "Ein Zeichenprogramm" auf Seite 213/214 im Buch
"Einführung in Perl / Tk" von Nancy Walsh entsteht das Grundgerüst.
Man kann Kreise setzten (Ecken) und beliebige Striche ziehen.
Funktionen:
- tk_start
- bind_start
- zeichnen_anfang
- aendere_item
- zeichnen_ende