kurse:efcomputergrafik:kw48

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
kurse:efcomputergrafik:kw48 [2019/11/26 21:23]
Ivo Blöchliger [G-Code für den Plotter]
kurse:efcomputergrafik:kw48 [2019/12/04 11:48] (current)
Ivo Blöchliger [Text-Analyse mit Python]
Line 24: Line 24:
  
 Man findet $\vec v(0) = 3(\vec p_1 - \vec p_0)$, also Tangente parallel zu $P_0P_1$. Man findet $\vec v(0) = 3(\vec p_1 - \vec p_0)$, also Tangente parallel zu $P_0P_1$.
-Analog mit $\vec v(1)$.+Analog mit $\vec v(1) = 3(\vec p_3 - \vec p_2)$.
  
-====== Interpolation mit kubischen Funktionen ====== +Mit Maxima: 
-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_Qin diesen Punkten.+<code maxima> 
 +p(t,a,b,c,d):=(1-t)^3*a+3*(1-t)^2*t*b+3*(1-t)*t^2*c+t^3*d; 
 +define(v(t)factorout(diff(p(t,a,b,c,d),t),t)); 
 +tex(v(t)); 
 +define(a(t), factorout(diff(v(t),t),t)); 
 +tex(a(t)); 
 +</code> 
 +liefert 
 +$$3\,d\,t^2+3\,b\,\left(t-1\right)\,\left(3\,t-1\right)-3\,c\,t\, 
 + \left(3\,t-2\right)-3\,a\,\left(t-1\right)^2$$ 
 +und 
 +$$-6\,c\,\left(3\,t-1\right)+6\,b\,\left(3\,t-2\right)+6\,d\,t-6\,a\, 
 + \left(t-1\right)$$
  
-Variante 1: Ansatz $f(x) = ax^3+bx^2+cx+d$, Gleichungssystem aufstellenlösen.+Interessant sind auch hier die Werte von $a(0)$ und $a(1)$: 
 +$$a(0) = 6\,c-12\,b+6\,a$$ 
 +$$a(1) = 6\,d-12\,c+6\,b$$ 
 + 
 + 
 +===== Darstellung von Kurven vom Grad 1 und 2 mit Hilfe von einer Kurve vom Grad 3 ===== 
 +==== Grad 1 ==== 
 +Damit die Geschwindigkeit für $t=0$ übereinstimmt, müssen die Kontrollpunkte sich bei $t=\frac{1}{3}$ und $t=\frac{2}{3}$ befinden. Beweis mit Maxima (ein OpenSource CAS-Programm): 
 +<code maxima> 
 +p(t,a,b,c,d):=(1-t)^3*a+3*(1-t)^2*t*b+3*(1-t)*t^2*c+t^3*d
 +factorout(expand(p(t, a, (2/3*a+1/3*b), a/3+2/3*b,b)),t); 
 +tex(%); 
 +</code> 
 +liefert: 
 +$$b\,t+a\,\left(1-t\right)$$ 
 +==== Grad 2 ==== 
 +Für den Grad zwei, mit Kontrollpunkten $q_0, q_1, q_2$ ist $\vec v(0) = 2(\vec q_1-\vec q_0)$Damit die Geschwindigkeiten für $t=0$ übereinstimmen muss $p_1 = \frac{1}{3}q_0 + \frac{2}{3}q_1$ sein. Analog für $p_2$. 
 +Beweis wieder mit Maxima: 
 +<code maxima> 
 +p(t,a,b,c,d):=(1-t)^3*a+3*(1-t)^2*t*b+3*(1-t)*t^2*c+t^3*d; 
 +factorout(expand(p(t, a, (2/3*b+1/3*a), c/3+2/3*b,c)),t); 
 +tex(%); 
 +</code> 
 +liefert:  
 +$$c\,t^2-2\,b\,\left(t-1\right)\,t+a\,\left(t-1\right)^2$$
  
-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 ====== ====== Analyse von SVG-Pfaden ======
Line 67: Line 102:
  
 ===== Umgang mit Inkscape ===== ===== Umgang mit Inkscape =====
 +
 +Download für die Schulcomputer: https://fginfo.ksbg.ch/dokuwiki/doku.php?id=lehrkraefte:blc:informatik:glf19:glf19#make_the_computer_zimmer_great_again
 +
 Nützliche Tastenkombinationen: Nützliche Tastenkombinationen:
   * F1: Auswahlmodus (zum kopieren, löschen, verschieben, rotieren)   * F1: Auswahlmodus (zum kopieren, löschen, verschieben, rotieren)
-  * F2: Edit-Modus (Manipulation der Pfadelemente.+  * F2: Edit-Modus (Manipulation der Pfadelemente).
  
 Pfad-Manipulationen: 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.   * 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).    * Ctrl-K: Combine (mehrere Pfade in einen Pfad zusammenfassen). 
- 
-===== G-Code für den Plotter ===== 
-Der Nullpunkt befindet sich bei den Radien $r_1=r_2=1445$ (in mm). Pro Motorschritt verändern sich die Radien um $\approx 0.0157029$. Die Motoren haben einen Abstand von 1930 mm. 
- 
-Der G-Code bezieht sich direkt auf die Motorenschritte (was eigentlich gerade nicht der Sinn von G-Code ist). 
- 
-Nur G1 (lineare Interpolation) ist implementiert: 
-  * G1 X-400 Y800  (Gehe zur absoluten Position -400 Schritte (Motor links) und +800 Schritte (Motor rechts). 
-  * G1 Z0 (Stift hoch, nicht zeichnen) 
-  * G1 Z1 (Stift runter, zeichnen) 
-Nach jedem Kommando muss auf ein 'OK\n' gewartet werden. 
  
  
  • kurse/efcomputergrafik/kw48.1574799789.txt.gz
  • Last modified: 2019/11/26 21:23
  • by Ivo Blöchliger