aboutsummaryrefslogtreecommitdiffstats
path: root/buch/papers/clifford/3d
diff options
context:
space:
mode:
Diffstat (limited to 'buch/papers/clifford/3d')
-rw-r--r--buch/papers/clifford/3d/Makefile38
-rw-r--r--buch/papers/clifford/3d/common.inc247
-rw-r--r--buch/papers/clifford/3d/dq.jpgbin0 -> 135038 bytes
-rw-r--r--buch/papers/clifford/3d/dq.pdfbin0 -> 156467 bytes
-rw-r--r--buch/papers/clifford/3d/dq.pov30
-rw-r--r--buch/papers/clifford/3d/dq.tex51
-rw-r--r--buch/papers/clifford/3d/drehung.jpgbin0 -> 203814 bytes
-rw-r--r--buch/papers/clifford/3d/drehung.pdfbin0 -> 224521 bytes
-rw-r--r--buch/papers/clifford/3d/drehung.pov120
-rw-r--r--buch/papers/clifford/3d/drehung.tex56
-rw-r--r--buch/papers/clifford/3d/q23.jpgbin0 -> 77888 bytes
-rw-r--r--buch/papers/clifford/3d/q23.pov12
-rw-r--r--buch/papers/clifford/3d/q31.jpgbin0 -> 75576 bytes
-rw-r--r--buch/papers/clifford/3d/q31.pov12
-rw-r--r--buch/papers/clifford/3d/qq.pdfbin0 -> 170756 bytes
-rw-r--r--buch/papers/clifford/3d/qq.tex68
16 files changed, 634 insertions, 0 deletions
diff --git a/buch/papers/clifford/3d/Makefile b/buch/papers/clifford/3d/Makefile
new file mode 100644
index 0000000..147ca81
--- /dev/null
+++ b/buch/papers/clifford/3d/Makefile
@@ -0,0 +1,38 @@
+#
+# Makefile
+#
+# (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+#
+all: dq.jpg q23.jpg q31.jpg drehung.jpg dq.pdf qq.pdf drehung.pdf
+
+size="+W3840 +H2160"
+
+dq.png: dq.pov common.inc
+ povray +A0.1 $(size) -Odq.png dq.pov
+dq.jpg: dq.png Makefile
+ convert -extract 1600x1400+1500+60 dq.png -density 300 -units PixelsPerInch dq.jpg
+dq.pdf: dq.jpg dq.tex
+ pdflatex dq.tex
+
+extract="1200x1200+1450+350"
+
+q23.png: q23.pov common.inc
+ povray +A0.1 $(size) -Oq23.png q23.pov
+q23.jpg: q23.png Makefile
+ convert -extract $(extract) q23.png -density 300 -units PixelsPerInch q23.jpg
+
+q31.png: q31.pov common.inc
+ povray +A0.1 $(size) -Oq31.png q31.pov
+q31.jpg: q31.png Makefile
+ convert -extract $(extract) q31.png -density 300 -units PixelsPerInch q31.jpg
+
+qq.pdf: qq.tex q31.jpg q23.jpg
+ pdflatex qq.tex
+
+drehung.png: drehung.pov common.inc
+ povray +A0.1 $(size) -Odrehung.png drehung.pov
+drehung.jpg: drehung.png Makefile
+ convert -extract 1600x1450+1400+50 drehung.png -density 300 -units PixelsPerInch drehung.jpg
+drehung.pdf: drehung.tex drehung.jpg
+ pdflatex drehung.tex
+
diff --git a/buch/papers/clifford/3d/common.inc b/buch/papers/clifford/3d/common.inc
new file mode 100644
index 0000000..54aa7fe
--- /dev/null
+++ b/buch/papers/clifford/3d/common.inc
@@ -0,0 +1,247 @@
+//
+// common.inc
+//
+// (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+//
+#version 3.7;
+#include "colors.inc"
+
+global_settings {
+ assumed_gamma 1
+}
+
+#declare imagescale = 0.14;
+#declare r = 0.02;
+#declare thick = 0.040;
+
+camera {
+ location <40, 12, 15>
+ look_at <0, 0, 0>
+ right 16/9 * x * imagescale
+ up y * imagescale
+}
+
+light_source {
+ <40, 20, 20> color White
+ area_light <1,0,0> <0,0,1>, 10, 10
+ adaptive 1
+ jitter
+}
+
+sky_sphere {
+ pigment {
+ color rgb<1,1,1>
+ }
+}
+
+//
+// draw an arrow from <from> to <to> with thickness <arrowthickness> with
+// color <c>
+//
+#macro arrow(from, to, arrowthickness, c)
+#declare arrowdirection = vnormalize(to - from);
+#declare arrowlength = vlength(to - from);
+union {
+ sphere {
+ from, 1.1 * arrowthickness
+ }
+ cylinder {
+ from,
+ from + (arrowlength - 5 * arrowthickness) * arrowdirection,
+ arrowthickness
+ }
+ cone {
+ from + (arrowlength - 5 * arrowthickness) * arrowdirection,
+ 2 * arrowthickness,
+ to,
+ 0
+ }
+ pigment {
+ color c
+ }
+ finish {
+ specular 0.9
+ metallic
+ }
+}
+#end
+
+
+arrow(< -3, 0, 0 >, < 3, 0, 0 >, r, White)
+arrow(< 0, -3, 0 >, < 0, 3, 0 >, r, White)
+arrow(< 0, 0, -3 >, < 0, 0, 3 >, r, White)
+
+#macro circlearrow0(e1, e2, e3, r1, r2, h, winkel)
+
+mesh {
+ #declare N = 100;
+ #declare phi = 0;
+ #declare phimax = winkel - pi / 12;
+ #declare phistep = (phimax - phi) / N;
+ #while (phi < phimax - phistep/2)
+ triangle {
+ center + r1 * (cos(phi ) * e1 + sin(phi ) * e2) - h * e3,
+ center + r2 * (cos(phi ) * e1 + sin(phi ) * e2) - h * e3,
+ center + r1 * (cos(phi+phistep) * e1 + sin(phi+phistep) * e2) - h * e3
+ }
+ triangle {
+ center + r1 * (cos(phi+phistep) * e1 + sin(phi+phistep) * e2) - h * e3,
+ center + r2 * (cos(phi ) * e1 + sin(phi ) * e2) - h * e3,
+ center + r2 * (cos(phi+phistep) * e1 + sin(phi+phistep) * e2) - h * e3
+ }
+ triangle {
+ center + r1 * (cos(phi ) * e1 + sin(phi ) * e2) + h * e3,
+ center + r2 * (cos(phi ) * e1 + sin(phi ) * e2) + h * e3,
+ center + r1 * (cos(phi+phistep) * e1 + sin(phi+phistep) * e2) + h * e3
+ }
+ triangle {
+ center + r1 * (cos(phi+phistep) * e1 + sin(phi+phistep) * e2) + h * e3,
+ center + r2 * (cos(phi ) * e1 + sin(phi ) * e2) + h * e3,
+ center + r2 * (cos(phi+phistep) * e1 + sin(phi+phistep) * e2) + h * e3
+ }
+ triangle {
+ center + r1 * (cos(phi ) * e1 + sin(phi ) * e2) - h * e3,
+ center + r1 * (cos(phi+phistep) * e1 + sin(phi+phistep) * e2) - h * e3,
+ center + r1 * (cos(phi+phistep) * e1 + sin(phi+phistep) * e2) + h * e3
+ }
+ triangle {
+ center + r1 * (cos(phi ) * e1 + sin(phi ) * e2) - h * e3,
+ center + r1 * (cos(phi+phistep) * e1 + sin(phi+phistep) * e2) + h * e3,
+ center + r1 * (cos(phi ) * e1 + sin(phi ) * e2) + h * e3
+ }
+ triangle {
+ center + r2 * (cos(phi ) * e1 + sin(phi ) * e2) - h * e3,
+ center + r2 * (cos(phi+phistep) * e1 + sin(phi+phistep) * e2) - h * e3,
+ center + r2 * (cos(phi+phistep) * e1 + sin(phi+phistep) * e2) + h * e3
+ }
+ triangle {
+ center + r2 * (cos(phi ) * e1 + sin(phi ) * e2) - h * e3,
+ center + r2 * (cos(phi+phistep) * e1 + sin(phi+phistep) * e2) + h * e3,
+ center + r2 * (cos(phi ) * e1 + sin(phi ) * e2) + h * e3
+ }
+ #declare phi = phi + phistep;
+ #end
+
+ triangle {
+ center + r1 * e1 - h * e3,
+ center + r1 * e1 + h * e3,
+ center + r2 * e1 + h * e3
+ }
+ triangle {
+ center + r2 * e1 - h * e3,
+ center + r2 * e1 + h * e3,
+ center + r1 * e1 - h * e3
+ }
+ triangle {
+ center + r1 * cos(phi) * e1 + r1 * sin(phi) * e2 - h * e3,
+ center + r2 * cos(phi) * e1 + r2 * sin(phi) * e2 - h * e3,
+ center + 0.5*(r1+r2) * (cos(phi + pi/12) * e1 + sin(phi + pi/12) * e2) - h * e3
+ }
+ triangle {
+ center + r1 * cos(phi) * e1 + r1 * sin(phi) * e2 + h * e3,
+ center + r2 * cos(phi) * e1 + r2 * sin(phi) * e2 + h * e3,
+ center + 0.5*(r1+r2) * (cos(phi + pi/12) * e1 + sin(phi + pi/12) * e2) + h * e3
+ }
+ triangle {
+ center + r1 * cos(phi) * e1 + r1 * sin(phi) * e2 - h * e3,
+ center + 0.5*(r1+r2) * (cos(phi + pi/12) * e1 + sin(phi + pi/12) * e2) - h * e3
+ center + r1 * cos(phi) * e1 + r1 * sin(phi) * e2 + h * e3
+ }
+ triangle {
+ center + 0.5*(r1+r2) * (cos(phi + pi/12) * e1 + sin(phi + pi/12) * e2) - h * e3
+ center + r1 * cos(phi) * e1 + r1 * sin(phi) * e2 + h * e3,
+ center + 0.5*(r1+r2) * (cos(phi + pi/12) * e1 + sin(phi + pi/12) * e2) + h * e3
+ }
+ triangle {
+ center + 0.5*(r1+r2) * (cos(phi + pi/12) * e1 + sin(phi + pi/12) * e2) - h * e3,
+ center + r2 * cos(phi) * e1 + r2 * sin(phi) * e2 - h * e3,
+ center + r2 * cos(phi) * e1 + r2 * sin(phi) * e2 + h * e3
+ }
+ triangle {
+ center + 0.5*(r1+r2) * (cos(phi + pi/12) * e1 + sin(phi + pi/12) * e2) - h * e3,
+ center + r2 * cos(phi) * e1 + r2 * sin(phi) * e2 + h * e3,
+ center + 0.5*(r1+r2) * (cos(phi + pi/12) * e1 + sin(phi + pi/12) * e2) + h * e3
+ }
+
+ pigment {
+ color rgb<1, 0.4, 0.4>
+ }
+}
+
+#end
+
+
+#macro circlearrow(fromdirection, axis, center, r, h, winkel, anzahl)
+
+#declare e1 = vnormalize(fromdirection);
+#declare e2 = -vnormalize(vcross(axis, fromdirection));
+#declare e3 = vnormalize(axis);
+
+#declare r1 = 0.4 * r;
+#declare r2 = r;
+
+#declare w = 0;
+#while (w < anzahl)
+ #declare a = 2 * w * pi / anzahl;
+ circlearrow0(e1 * cos(a) - e2 * sin(a), e1 * sin(a) + e2 * cos(a), e3, r1, r2, 1.2 * h, winkel)
+ #declare w = w + 1;
+#end
+
+mesh {
+ #declare vlu = center - r * e1 - r * e2 - h * e3;
+ #declare vlo = center - r * e1 - r * e2 + h * e3;
+ #declare vru = center - r * e1 + r * e2 - h * e3;
+ #declare vro = center - r * e1 + r * e2 + h * e3;
+ #declare hlu = center + r * e1 - r * e2 - h * e3;
+ #declare hlo = center + r * e1 - r * e2 + h * e3;
+ #declare hru = center + r * e1 + r * e2 - h * e3;
+ #declare hro = center + r * e1 + r * e2 + h * e3;
+ triangle { vlu, vru, vro }
+ triangle { vlu, vro, vlo }
+
+ triangle { vru, hru, hro }
+ triangle { vru, hro, vro }
+
+ triangle { hru, hlu, hlo }
+ triangle { hru, hlo, hro }
+
+ triangle { hlu, vlu, vlo }
+ triangle { hlu, vlo, hlo }
+
+ triangle { vlu, vru, hru }
+ triangle { vlu, hru, hlu }
+
+ triangle { vlo, vro, hro }
+ triangle { vlo, hro, hlo }
+
+ pigment {
+ color rgb<0.6,0.6,1>
+ }
+ finish {
+ specular 0.96
+ metallic
+ }
+}
+
+#if (vlength(axis) > 0.1)
+cone {
+ center + 1.19 * h * e3, r, center + 2 * r * e3, 0
+ pigment {
+ color rgbt<0.6,0.6,1,0.8>
+ }
+}
+#end
+
+cylinder {
+ center, center + 2 * r * e3, 0.04*0.2
+ pigment {
+ color rgb<1.0,0.6,0.6>
+ }
+ finish {
+ specular 0.96
+ metallic
+ }
+}
+
+#end
+
diff --git a/buch/papers/clifford/3d/dq.jpg b/buch/papers/clifford/3d/dq.jpg
new file mode 100644
index 0000000..bd44a65
--- /dev/null
+++ b/buch/papers/clifford/3d/dq.jpg
Binary files differ
diff --git a/buch/papers/clifford/3d/dq.pdf b/buch/papers/clifford/3d/dq.pdf
new file mode 100644
index 0000000..71727d2
--- /dev/null
+++ b/buch/papers/clifford/3d/dq.pdf
Binary files differ
diff --git a/buch/papers/clifford/3d/dq.pov b/buch/papers/clifford/3d/dq.pov
new file mode 100644
index 0000000..762eee2
--- /dev/null
+++ b/buch/papers/clifford/3d/dq.pov
@@ -0,0 +1,30 @@
+//
+// dq.pov -- Drehung und Quaternion
+//
+// (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+//
+#include "common.inc"
+
+arrow(<0,0,0>, <1, sqrt(2), 2>, r, Red)
+
+#declare r = 0.2 * r;
+
+#declare drehwinkel = 0.95 * 2*pi/3 * 3;
+#declare drehwinkel23 = drehwinkel;
+#declare drehwinkel12 = drehwinkel / sqrt(2);
+#declare drehwinkel13 = drehwinkel / 2;
+
+circlearrow(<1,0,0>, <0,0,1>, <1, sqrt(2), 0>, 1, thick, drehwinkel23, 1)
+circlearrow(<1,0,0>, <0,1,0>, <1, 0, 2>, sqrt(2)/2, thick, drehwinkel12, 1)
+circlearrow(<0,0,1>, <1,0,0>, <0, sqrt(2), 2>, 0.5, thick, drehwinkel13, 1)
+
+#declare l = 2.8;
+#declare h = 0.0001;
+union {
+ box { <-l,-l,-h>, <l,l,-h> }
+ box { <-l,-h,-l>, <l,-h,l> }
+ box { <-h,-l,-l>, <-h,l,l> }
+ pigment {
+ color rgbt<0.6,0.6,0.6,0.0>
+ }
+}
diff --git a/buch/papers/clifford/3d/dq.tex b/buch/papers/clifford/3d/dq.tex
new file mode 100644
index 0000000..6b28452
--- /dev/null
+++ b/buch/papers/clifford/3d/dq.tex
@@ -0,0 +1,51 @@
+%
+% dq.tex
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\documentclass[tikz]{standalone}
+\usepackage{times}
+\usepackage{amsmath}
+\usepackage{txfonts}
+\usepackage[utf8]{inputenc}
+\usepackage{graphics}
+\usetikzlibrary{arrows,intersections,math}
+\usepackage{ifthen}
+\begin{document}
+
+\definecolor{darkred}{rgb}{0.7,0,0}
+
+\newboolean{showgrid}
+\setboolean{showgrid}{false}
+\def\breite{6}
+\def\hoehe{6}
+
+\begin{tikzpicture}[>=latex,thick]
+
+% Povray Bild
+\node at (0,0) {\includegraphics[width=12cm]{dq.jpg}};
+
+% Gitter
+\ifthenelse{\boolean{showgrid}}{
+\draw[step=0.1,line width=0.1pt] (-\breite,-\hoehe) grid (\breite, \hoehe);
+\draw[step=0.5,line width=0.4pt] (-\breite,-\hoehe) grid (\breite, \hoehe);
+\draw (-\breite,-\hoehe) grid (\breite, \hoehe);
+\fill (0,0) circle[radius=0.05];
+}{}
+
+\node at (-2.8,-2.7) {$O$};
+\node at (4.7,-3.4) {$a_1$};
+\node at (-2.6,5.2) {$a_2$};
+\fill[color=white,opacity=0.7] ({-5.7-0.25},{-4.8-0.15}) rectangle ({-5.7+0.25},{-4.8+0.2});
+\node at (-5.7,-4.8) {$a_3$};
+
+\node[color=blue] at (-3.6,0.8) {$y\mathbf{e}_{23}$};
+\node[color=blue] at (2.1,0.9) {$x\mathbf{e}_{12}$};
+\node[color=blue] at (1.3,-3.7) {$z\mathbf{e}_{13}$};
+
+\node[color=darkred] at (1.3,0.4) {$\vec{q}$};
+
+\end{tikzpicture}
+
+\end{document}
+
diff --git a/buch/papers/clifford/3d/drehung.jpg b/buch/papers/clifford/3d/drehung.jpg
new file mode 100644
index 0000000..ad7cd47
--- /dev/null
+++ b/buch/papers/clifford/3d/drehung.jpg
Binary files differ
diff --git a/buch/papers/clifford/3d/drehung.pdf b/buch/papers/clifford/3d/drehung.pdf
new file mode 100644
index 0000000..de29085
--- /dev/null
+++ b/buch/papers/clifford/3d/drehung.pdf
Binary files differ
diff --git a/buch/papers/clifford/3d/drehung.pov b/buch/papers/clifford/3d/drehung.pov
new file mode 100644
index 0000000..54b5a2e
--- /dev/null
+++ b/buch/papers/clifford/3d/drehung.pov
@@ -0,0 +1,120 @@
+//
+// drehung.pov -- Drehung um (1,1,1)
+//
+// (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+//
+#include "common.inc"
+
+#declare n = vnormalize(<1,1,1>);
+#declare V = <0,2.6,0>;
+#declare W = <0,0,2.6>;
+
+#declare Vparallel = vdot(n, V) * n;
+#declare Vperp = V - Vparallel;
+#declare Wparallel = vdot(n, W) * n;
+#declare Wperp = W - Wparallel;
+
+arrow(<0,0,0>, 2*n, thick, Red)
+
+arrow(<0,0,0>, V, thick, rgb<0.0,1.0,1.0>)
+arrow(<0,0,0>, W, thick, rgb<0.0,1.0,1.0>)
+
+circlearrow(vnormalize(vcross(<-1,0,1>,n)), -0.01 * <1,1,1>, <0,0,0>, 1, 0.8*thick, 1.98*pi/3, 3)
+
+arrow(<0,0,0>, Vperp, 0.99*thick, Blue)
+arrow(<0,0,0>, Wperp, 0.99*thick, Blue)
+
+arrow(Vperp, V, thick, Green)
+arrow(Wperp, W, thick, Green)
+
+#declare l = 2.4;
+intersection {
+ box { <-l,-l,-l>, <l,l,l> }
+ //cylinder { -n, n, 3 }
+ plane { n, 0.01 }
+ plane { -n, 0.01 }
+ pigment {
+ color rgbt<0.6,0.6,1.0,0.8>
+ }
+}
+
+#declare e1 = vnormalize(Vperp);
+#declare e3 = n;
+#declare e2 = vnormalize(vcross(e3, e1));
+#declare r = vlength(Vperp);
+
+mesh {
+ #declare phi = 0;
+ #declare phimax = 2*pi/3;
+ #declare phistep = (phimax - phi) / N;
+ #while (phi < phimax - phistep/2)
+ triangle {
+ <0,0,0>,
+ r * (cos(phi ) * e1 + sin(phi ) * e2),
+ r * (cos(phi+phistep) * e1 + sin(phi+phistep) * e2)
+ }
+ #declare phi = phi + phistep;
+ #end
+ pigment {
+ color rgbt<0.2,0.2,1.0,0.4>
+ }
+}
+
+union {
+ #declare phi = 0;
+ #declare phimax = 2*pi/3;
+ #declare phistep = (phimax - phi) / N;
+ #while (phi < phimax - phistep/2)
+ cylinder {
+ r * (cos(phi ) * e1 + sin(phi ) * e2),
+ r * (cos(phi+phistep) * e1 + sin(phi+phistep) * e2),
+ 0.01
+ }
+ sphere { r * (cos(phi ) * e1 + sin(phi ) * e2), 0.01 }
+ #declare phi = phi + phistep;
+ #end
+ pigment {
+ color Blue
+ }
+}
+
+mesh {
+ #declare phi = 0;
+ #declare phimax = 2*pi/3;
+ #declare phistep = (phimax - phi) / N;
+ #while (phi < phimax - phistep/2)
+ triangle {
+ r * (cos(phi ) * e1 + sin(phi ) * e2),
+ r * (cos(phi+phistep) * e1 + sin(phi+phistep) * e2),
+ r * (cos(phi ) * e1 + sin(phi ) * e2) + Vparallel
+ }
+ triangle {
+ r * (cos(phi+phistep) * e1 + sin(phi+phistep) * e2),
+ r * (cos(phi ) * e1 + sin(phi ) * e2) + Vparallel,
+ r * (cos(phi+phistep) * e1 + sin(phi+phistep) * e2) + Vparallel
+ }
+ #declare phi = phi + phistep;
+ #end
+ pigment {
+ color rgbt<0.2,1,0.2,0.4>
+ }
+}
+
+union {
+ #declare phi = 0;
+ #declare phimax = 2*pi/3;
+ #declare phistep = (phimax - phi) / N;
+ #while (phi < phimax - phistep/2)
+ cylinder {
+ r * (cos(phi ) * e1 + sin(phi ) * e2) + Vparallel,
+ r * (cos(phi+phistep) * e1 + sin(phi+phistep) * e2) + Vparallel,
+ 0.01
+ }
+ sphere { r * (cos(phi ) * e1 + sin(phi ) * e2) + Vparallel, 0.01 }
+ #declare phi = phi + phistep;
+ #end
+ pigment {
+ color Green
+ }
+}
+
diff --git a/buch/papers/clifford/3d/drehung.tex b/buch/papers/clifford/3d/drehung.tex
new file mode 100644
index 0000000..2ed6789
--- /dev/null
+++ b/buch/papers/clifford/3d/drehung.tex
@@ -0,0 +1,56 @@
+%
+% drehung.tex
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\documentclass[tikz]{standalone}
+\usepackage{times}
+\usepackage{amsmath}
+\usepackage{txfonts}
+\usepackage[utf8]{inputenc}
+\usepackage{graphics}
+\usetikzlibrary{arrows,intersections,math}
+\usepackage{ifthen}
+\begin{document}
+
+\definecolor{darkgreen}{rgb}{0,0.6,0}
+\definecolor{darkred}{rgb}{0.6,0,0}
+
+\newboolean{showgrid}
+\setboolean{showgrid}{false}
+\def\breite{7}
+\def\hoehe{6}
+
+\begin{tikzpicture}[>=latex,thick]
+
+% Povray Bild
+\node at (0,0) {\includegraphics[width=13cm]{drehung.jpg}};
+
+% Gitter
+\ifthenelse{\boolean{showgrid}}{
+\draw[step=0.1,line width=0.1pt] (-\breite,-\hoehe) grid (\breite, \hoehe);
+\draw[step=0.5,line width=0.4pt] (-\breite,-\hoehe) grid (\breite, \hoehe);
+\draw (-\breite,-\hoehe) grid (\breite, \hoehe);
+\fill (0,0) circle[radius=0.05];
+}{}
+
+\node at (6.1,-3.3) {$a_1$};
+\node at (-2.0,5.7) {$a_2$};
+\node at (-5.7,-4.9) {$a_3$};
+
+\node[color=white] at (-1.9,4.4) {$\boldsymbol{v}$};
+\node[color=white] at (4.5,-2.7) {$\boldsymbol{v}''$};
+
+\node[color=darkgreen] at (-3.3,4.4) {$\boldsymbol{v}_{\perp}$};
+\node[color=darkgreen] at (4.2,-4.3) {$\boldsymbol{v}''_{\perp}$};
+
+\node[color=blue] at (-3.7,1.5) {$\boldsymbol{v}_{\|}$};
+\node[color=blue] at (1.9,-4.7) {$\boldsymbol{v}''_{\|}$};
+
+\node[color=darkred] at (-1.6,-4.2) {$2\alpha=120^\circ$};
+\node[color=darkred] at (-4.9,-0.6) {$\boldsymbol{q}$};
+
+\end{tikzpicture}
+
+\end{document}
+
diff --git a/buch/papers/clifford/3d/q23.jpg b/buch/papers/clifford/3d/q23.jpg
new file mode 100644
index 0000000..50ca028
--- /dev/null
+++ b/buch/papers/clifford/3d/q23.jpg
Binary files differ
diff --git a/buch/papers/clifford/3d/q23.pov b/buch/papers/clifford/3d/q23.pov
new file mode 100644
index 0000000..e3e5d49
--- /dev/null
+++ b/buch/papers/clifford/3d/q23.pov
@@ -0,0 +1,12 @@
+//
+// q23.pov -- Drehung und Quaternion
+//
+// (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+//
+#include "common.inc"
+
+circlearrow(<1,0,0>, 0.01*<0,0,-1>, <0, 0, 0>, 1.0, thick, 0.98*pi/2, 4)
+
+arrow( <0,0,0>, <-2.0,0,0>, 0.99*thick, Blue)
+arrow( <0,0,0>, <0,2.0,0>, 0.99*thick, Blue)
+arrow( <0,0,0>, <0,0,2.0>, 0.99*thick, Red)
diff --git a/buch/papers/clifford/3d/q31.jpg b/buch/papers/clifford/3d/q31.jpg
new file mode 100644
index 0000000..10313fa
--- /dev/null
+++ b/buch/papers/clifford/3d/q31.jpg
Binary files differ
diff --git a/buch/papers/clifford/3d/q31.pov b/buch/papers/clifford/3d/q31.pov
new file mode 100644
index 0000000..901f838
--- /dev/null
+++ b/buch/papers/clifford/3d/q31.pov
@@ -0,0 +1,12 @@
+//
+// q31.pov -- Drehung und Quaternion
+//
+// (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+//
+#include "common.inc"
+
+circlearrow(<1,0,0>, 0.01*<0,-1,0>, <0, 0, 0>, 1.0, thick, 0.98*pi/2, 4)
+
+arrow( <0,0,0>, <-2.0,0,0>, 0.99*thick, Blue)
+arrow( <0,0,0>, <0,2.0,0>, 0.99*thick, Red)
+arrow( <0,0,0>, <0,0,2.0>, 0.99*thick, Blue)
diff --git a/buch/papers/clifford/3d/qq.pdf b/buch/papers/clifford/3d/qq.pdf
new file mode 100644
index 0000000..4c55d57
--- /dev/null
+++ b/buch/papers/clifford/3d/qq.pdf
Binary files differ
diff --git a/buch/papers/clifford/3d/qq.tex b/buch/papers/clifford/3d/qq.tex
new file mode 100644
index 0000000..9baa8bb
--- /dev/null
+++ b/buch/papers/clifford/3d/qq.tex
@@ -0,0 +1,68 @@
+%
+% qq.tex
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\documentclass[tikz]{standalone}
+\usepackage{times}
+\usepackage{amsmath}
+\usepackage{txfonts}
+\usepackage[utf8]{inputenc}
+\usepackage{graphics}
+\usetikzlibrary{arrows,intersections,math}
+\usepackage{ifthen}
+\begin{document}
+
+\definecolor{darkred}{rgb}{0.7,0,0}
+
+\newboolean{showgrid}
+\setboolean{showgrid}{false}
+\def\breite{4}
+\def\hoehe{4}
+
+\begin{tikzpicture}[>=latex,thick]
+
+% Povray Bild
+\begin{scope}[xshift=-3.3cm]
+\node at (0,0) {\includegraphics[width=6.3cm]{q23.jpg}};
+% Gitter
+\ifthenelse{\boolean{showgrid}}{
+\draw[step=0.1,line width=0.1pt] (-\breite,-\hoehe) grid (\breite, \hoehe);
+\draw[step=0.5,line width=0.4pt] (-\breite,-\hoehe) grid (\breite, \hoehe);
+\draw (-\breite,-\hoehe) grid (\breite, \hoehe);
+\fill (0,0) circle[radius=0.05];
+}{}
+\fill[color=white,opacity=0.5] ({-0.6-0.3},{-0.2-0.2}) rectangle ({-0.6+0.3},{-0.2+0.2});
+\node[color=darkred] at (-0.6,-0.2) {$\boldsymbol{q}_{23}$};
+\node[color=blue] at (-0.4,2.7) {$\boldsymbol{v}$};
+\node[color=blue] at (0.7,0.4) {$\boldsymbol{v}''_{23}$};
+\node at (3.1,-1.4) {$a_1$};
+\node at (-2.7,-2.4) {$a_3$};
+\node at (-0.7,3.4) {$a_2$};
+\end{scope}
+
+\setboolean{showgrid}{false}
+
+\begin{scope}[xshift=3.3cm]
+\node at (0,0) {\includegraphics[width=6.3cm]{q31.jpg}};
+% Gitter
+\ifthenelse{\boolean{showgrid}}{
+\draw[step=0.1,line width=0.1pt] (-\breite,-\hoehe) grid (\breite, \hoehe);
+\draw[step=0.5,line width=0.4pt] (-\breite,-\hoehe) grid (\breite, \hoehe);
+\draw (-\breite,-\hoehe) grid (\breite, \hoehe);
+\fill (0,0) circle[radius=0.05];
+}{}
+\fill[color=white,opacity=0.5] ({-0.7-0.3},{-0.9-0.2}) rectangle ({-0.7+0.3},{-0.9+0.2});
+\node[color=darkred] at (-0.7,-0.9) {$\boldsymbol{q}_{13}$};
+\node[color=blue] at (0.7,0.4) {$\boldsymbol{v}''_{23}$};
+\node[color=blue] at (2.7,-0.7) {$\boldsymbol{v}''$};
+\node at (3.1,-1.4) {$a_1$};
+\node at (-2.7,-2.4) {$a_3$};
+\node at (-0.7,3.4) {$a_2$};
+\end{scope}
+
+
+\end{tikzpicture}
+
+\end{document}
+