kurse:efcomputergrafik:kw48

This is an old revision of the document!


Algebraische Form

Bestimmen Sie die algebraische Form der Bezierkurven von Grad 1,2,3 (und $n$, wer möchte), und zwar als konvexe Kombination der Kontrollpunkte mit den Koeffizienten als vollständig faktorisierte Polynome in $t$.

Kontrollpunkte $p_0$ bis $p_n$: $$ p(t) = \sum_{i=0}^n {n \choose i} (1-t)^{n-i} \cdot t^i \cdot p_i $$

Für Grad 3: $$ p(t) = (1-t)^3 \cdot p_0 + 3(1-t)^2t \cdot p_1 + 3 \cdot (1-t)t^2 \cdot p_2 + t^3 \cdot p_3 $$

Interpolation mit kubischen Funktionen

Gesucht ist eine kubische Funktion durch 2 gegebene Punkte $P=(0,y_P)$ und $Q=(1,y_Q)$ mit gegebenen Tangentensteigungen $m_P$ und $m_Q$ in diesen Punkten.

Variante 1: Ansatz $f(x) = ax^3+bx^2+cx+d$, Gleichungssystem aufstellen, lösen.

Variante 2: Anstatt die kanonische Basis $1,x,x^2,x^3$ zu verwenden, soll eine Basis mit der Eigenschaft gefunden werden, dass von folgenden Werten immer nur genau einer Eins und die restlichen Null sind: $b(0), b(1), b'(0), b'(1)$. Die gesuchte Lösung ergibt sich dann als einfache Linearkombination mit den gegebenen Koeffizienten.

Analyse von SVG-Pfaden

Vorgehen

Ziel:

SVG-Datei mit Inkscape erstellen → Python Programm das die Pfade ausliest → Konvertieren in Polygonzug → Umrechnen in Plotter-Koordinaten → Plotter Befehle → WhiteBoard verschönern.

Wäre cool:

  • Umgang mit Inkscape (erstellen von Pfaden)
  • Analyse der SVG-Datei
    • Welche Pfad-Element müssen implementiert werden, wie funktionieren diese?
    • Text-Analyse, Konvertierung der Daten in Python
  • Bezier-Klasse erstellen (für Kurven von Grad 1 bis 3).
    • Initialisierung
    • Zeichnen (Validierung)
    • Interpolation
  • Pfad-Klasse erstellen
    • Als Sammlung von Bezier-Kurven
  • Plotter Koordinatensystem analysieren
    • Geometrische Definition
    • Ausmessen im Tech-Lab
    • Nullpunkt festlegen
  • Plotter Sprache definieren
    • Koordinaten
    • Stift auf/ab
  • Arduino-Code anpassen

Nützliche Tastenkombinationen:

  • F1: Auswahlmodus (zum kopieren, löschen, verschieben, rotieren)
  • F2: Edit-Modus (Manipulation der Pfadelemente.

Pfad-Manipulationen:

  • Shift-Ctrl-C: Object to Path (Kreise, Rechtecke, Text wird erst *nicht* als Pfad gespeichert.) Bei Text ist danach noch eine Gruppe aufzulösen.
  • Ctrl-K: Combine (mehrere Pfade in einen Pfad zusammenfassen).
  • kurse/efcomputergrafik/kw48.1574774493.txt.gz
  • Last modified: 2019/11/26 14:21
  • by Ivo Blöchliger