Wintersemester 2021/22
- Bezier-Kurven
- Fill Algorithms
- Überblick Studienleistung 2: Vektor-Grafik
https://pingo.coactum.de/781526
(Intro Live)
Hervorragende Tutorials:
(Intro Live)
Tutorials:
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.
Abgabe: Do, 2. Dezember 2021 (5 Bonuspunkte - pro angefangener weiterer Woche 1 Punkt weniger)
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
- Alle End-/Eck-/Kontrollpunkte sollen als kleine Rechtecke (z.B. 5×5 px) dargestellt werden und mit der Maus verschoben werden können
- Mittels 'x' kann man die End-/Eck-/Kontrollpunkte ein-/ausblenden
- Mittels 'c' kann man den Canvas leeren
- Mit der mittleren Maustaste kann der gesamte Canvas verschoben werden
Wahlpflichtfeatures (3 Features):
- Zoomen mit dem Scrollrad (Liniendicke bleibt konstant 1 px)
- Zeichnen mit Farben (Auswahldialog von tkinter verwenden)
- 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)
- 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)
- Fragen?
- Szenengraphen für Transformationen, Gruppierungen
- Wrap-up 2D-Grafik - offene Fragen
- Optimierungen