F
fat32
Gast
Hi,
ich stehe gerade vor dem Problem, dass es in meinem geplanten Programm mehrere Zeichenwerkzeuge geben soll (so wie bei Paint: Stift, Kreis, Rechteck, ...)
Diese Werkzeuge müssen in der Lage sein, das Bild zu manipulieren. Das erste Problem:
Jedes Werkzeug braucht andere Informationen. Manche brauchen die Mausposition, andere die gerade gewählte Farbe, wieder andere brauchen nur das Bild, usw.
Wie mache ich das am besten? Mir fällt nichts besseres ein, als dass ich eine Klasse mache, deren Objekte alle möglichen Informationen aufnehmen kann (Registry) und sich dann die Werkzeuge die benötigten Infos holen. Diese Möglichkeit kommt mir ziemlich unsauber vor.
Dann habe ich noch das Problem, dass bei manchen Funktionen (insb. Kreis und Rechteck) erst entgültig auf das Bild gezeichnet werden soll, wenn ein Dragvorgang beendet ist.
Solange die Maustaste gedrückt ist und die Maus bewegt wird, soll eine "Vorschau" angezeigt werden.
Das letzte Problem ist die Rückgängig-Funktion. Ich könnte das Command-Pattern implementieren und vor jeder Änderung am Bild eine aktuelle version als Kopie ablegen. Das ist aber sehr speicherintensiv. Dafür wäre es realtiv einfach zu realisieren.
Eine andere Möglichkeit wäre es, jeweils nur die geänderten Pixel zu speichern. Aber wie mache ich das bei einem Kreis, den ich per drawArc() gezeichnet habe?
Fragen, Fragen, Fragen...
Ich hoffe, ihr könnt mir ein paar Ideen geben
MfG
Simon
ich stehe gerade vor dem Problem, dass es in meinem geplanten Programm mehrere Zeichenwerkzeuge geben soll (so wie bei Paint: Stift, Kreis, Rechteck, ...)
Diese Werkzeuge müssen in der Lage sein, das Bild zu manipulieren. Das erste Problem:
Jedes Werkzeug braucht andere Informationen. Manche brauchen die Mausposition, andere die gerade gewählte Farbe, wieder andere brauchen nur das Bild, usw.
Wie mache ich das am besten? Mir fällt nichts besseres ein, als dass ich eine Klasse mache, deren Objekte alle möglichen Informationen aufnehmen kann (Registry) und sich dann die Werkzeuge die benötigten Infos holen. Diese Möglichkeit kommt mir ziemlich unsauber vor.
Dann habe ich noch das Problem, dass bei manchen Funktionen (insb. Kreis und Rechteck) erst entgültig auf das Bild gezeichnet werden soll, wenn ein Dragvorgang beendet ist.
Solange die Maustaste gedrückt ist und die Maus bewegt wird, soll eine "Vorschau" angezeigt werden.
Das letzte Problem ist die Rückgängig-Funktion. Ich könnte das Command-Pattern implementieren und vor jeder Änderung am Bild eine aktuelle version als Kopie ablegen. Das ist aber sehr speicherintensiv. Dafür wäre es realtiv einfach zu realisieren.
Eine andere Möglichkeit wäre es, jeweils nur die geänderten Pixel zu speichern. Aber wie mache ich das bei einem Kreis, den ich per drawArc() gezeichnet habe?
Fragen, Fragen, Fragen...
Ich hoffe, ihr könnt mir ein paar Ideen geben
MfG
Simon