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