Wintersemester 2021/22
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?