Quiz/CGBV-SL2
Die zweite Studienleistung für den Kurs "Computergraphik und Bildverarbeitung" (SS23).
Vektorgrafik
Aufgabenstellung
Entwickeln Sie eine Zeichenanwendung mini-draw.py, mit der man Vektorgrafiken erstellen und bearbeiten kann. Die Funktionsweise soll gängigen Vektorgrafikprogrammen wie z.B. Inkscape ähneln. Die Anwendung soll einen tkinter.Canvas
verwenden, in dem über die create_rect()
-Methode einzelne Pixel gesetzt werden. Alle weiteren Zeichenoperationen sollen auf dieser Basis implementiert werden.
Verpflichtende Features
- Zeichnen von geraden Linien mit der linken Maustaste
- Zeichnen von quadratischen Bezier-Kurven, indem für jede gezeichnete Linie in der Mitte ein Kontrollpunkt gezeichnet wird, der gezogen werden kann
- Zeichnen von gefüllten Polygonen (selbst implementiert)
- Alle End-/Eck-/Kontrollpunkte sollen als kleine Rechtecke (z.B. 5×5 px) dargestellt werden und mit der Maus verschoben werden können
- Mittels der Taste x kann man die End-/Eck-/Kontrollpunkte ein-/ausblenden
- Mittels der Taste c kann man den Canvas leeren
- Mit der mittleren Maustaste kann der gesamte Canvas verschoben werden
Wahlpflichtfeatures
Wählen Sie 3 aus:
- Zoomen mit dem Scrollrad (Liniendicke bleibt konstant 1 px)
- Zeichnen mit Farben (Auswahldialog von tkinter verwenden)
- Füllen mit Mustern / Schraffuren
- Speichern und Laden der Grafik
- Zeichnen von Rechtecken oder Kreisen mit der rechten Maustaste
- effizientes Neuzeichnen des Bildschirms nur dort, wo sich etwas verändert hat
- Antialiasing der Linien
- (eigenes Feature vorschlagen)
Weitere Anforderungen
- bei Verwendung fremder Code-Beispiele: Quellenangabe im Text
- keine weiteren Bibliotheken verwenden außer tkinter, numpy
- Abgabe von Quellcode und kurzer Video-Demo (ca. 1 Minute)
Lernpfad