Browse Source

Add bezier spline calculation

Martin Thoma 9 năm trước cách đây
mục cha
commit
4dca4e51a2

+ 8 - 0
documents/c2-bezier-spline/Makefile

@@ -0,0 +1,8 @@
+SOURCE=minimal-document
+
+make:
+	pdflatex $(SOURCE).tex -output-format=pdf
+	make clean
+
+clean:
+	rm -rf  $(TARGET) *.class *.html *.log *.aux *.out

+ 50 - 0
documents/c2-bezier-spline/minimal-document.tex

@@ -0,0 +1,50 @@
+\documentclass[a4paper]{scrartcl}
+\usepackage[ngerman]{babel}
+\usepackage[utf8]{inputenc}
+\usepackage{amssymb,amsmath}
+
+\begin{document}
+    Wann ist ein kubischer Bezier-Splines $S(u) = [F(2 \cdot u), G(2(u-1))]$,
+    welche Kontrollpunkte in $\mathbb{R}^2$ haben, $C^2$-stetig?
+
+    Sei im folgenden $a = P_0$, $b = P_1$, $c = P_2$, $d= P_3$. Dann gilt:
+
+    \begin{align}
+        F(x) &= \sum_{i=0}^3 \mathbf{b}_i^n P_i\\
+             &= \sum_{i=0}^3 \begin{pmatrix}n\\i\end{pmatrix} x^{i} (1-x)^{n-i}  P_i\\
+             &= (1-x)^3 P_0 + 3 x (1-x)^2 P_1 + 3 x^2 (1-x) P_2 + x^3 P_3\\
+             &= -a x^3+3 a x^2-3 a x+a+3 b x^3-6 b x^2+3 b x-3 c x^3+3 c x^2+d x^3\\
+             &= (-a + 3 b-3 c+d) x^3  + (3 a-6 b+3 c) x^2 + (-3 a+3 b) x + a\\
+        F'(x)&= 3 (-a + 3 b-3 c+d) x^2 + 2 (3 a-6 b+3 c) x + (-3 a+3 b)\\
+        F''(x) &= 6 (-a + 3 b-3 c+d) x + 2 (3 a-6 b+3 c)
+    \end{align}
+
+    Damit $S$ nun $C^0$-stetig ist, muss $F(1) = G(0)$ gelten. Also:
+
+    \begin{align}
+        G(0) &= F(1)\\
+    \Leftrightarrow a_G
+        &= (-a_F + 3 b_F-3 c_F+d_F)  + (3 a_F-6 b_F+3 c_F) + (-3 a_F+3 b_F) + (2+a_F)\\
+    \Leftrightarrow a_G &= d_F\\
+    \end{align}
+
+    Damit $S$ nun $C^1$-stetig ist, muss zusätzlich $F'(1) = G'(0)$ gelten. Also:
+
+    \begin{align}
+        G'(0) &= F'(1)\\
+    \Leftrightarrow -3 a_G+3 b_G
+        &= 3 (-a_F + 3 b_F-3 c_F+d_F) + 2 (3 a_F-6 b_F+3 c_F) + (-3 a_F+3 b_F)\\
+    \Leftrightarrow -3 (a_G-b_G) &= 3 (- c_F+d_F)\\
+    \Leftrightarrow -a_G + b_G &= - c_F + d_F
+    \end{align}
+
+    Damit $S$ nun $C^2$-stetig ist, muss zusätzlich $F''(1) = G''(0)$ gelten. Also:
+
+    \begin{align}
+        G''(0) &= F''(1)\\
+        \Leftrightarrow 2 (3 a_G-6 b_G+3 c_G)
+                     &= 6 (-a_F + 3 b_F-3 c_F+d_F) + 2 (3 a_F-6 b_F+3 c_F)\\
+        \Leftrightarrow 6 (a_G - 2 b_G + c_G) &= 6 (b_F-2 c_F+d_F)\\
+        \Leftrightarrow a_G - 2 b_G + c_G &= b_F-2 c_F+d_F
+    \end{align}
+\end{document}