aboutsummaryrefslogtreecommitdiffstats
path: root/vorlesungen/slides/7/images
diff options
context:
space:
mode:
Diffstat (limited to 'vorlesungen/slides/7/images')
-rw-r--r--vorlesungen/slides/7/images/Makefile12
-rw-r--r--vorlesungen/slides/7/images/drehung.inc142
-rw-r--r--vorlesungen/slides/7/images/interpolation.ini8
-rw-r--r--vorlesungen/slides/7/images/interpolation.m54
-rw-r--r--vorlesungen/slides/7/images/interpolation.pov10
-rw-r--r--vorlesungen/slides/7/images/test.pov7
6 files changed, 232 insertions, 1 deletions
diff --git a/vorlesungen/slides/7/images/Makefile b/vorlesungen/slides/7/images/Makefile
index cc67c8a..6f99bc3 100644
--- a/vorlesungen/slides/7/images/Makefile
+++ b/vorlesungen/slides/7/images/Makefile
@@ -3,7 +3,7 @@
#
# (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
-all: rodriguez.jpg
+all: rodriguez.jpg test.png
rodriguez.png: rodriguez.pov
povray +A0.1 -W1920 -H1080 -Orodriguez.png rodriguez.pov
@@ -16,4 +16,14 @@ commutator: commutator.ini commutator.pov common.inc
jpg:
for f in c/c*.png; do convert $${f} c/`basename $${f} .png`.jpg; done
+dreibein/timestamp: interpolation.m
+ octave interpolation.m
+ touch dreibein/timestamp
+test.png: test.pov drehung.inc dreibein/d025.inc dreibein/timestamp
+ povray +A0.1 -W1080 -H1080 -Otest.png test.pov
+
+dreibein/d025.inc: dreibein/timestamp
+
+animation:
+ povray +A0.1 -W1080 -H1080 -Ointerpolation/i.png interpolation.ini
diff --git a/vorlesungen/slides/7/images/drehung.inc b/vorlesungen/slides/7/images/drehung.inc
new file mode 100644
index 0000000..c9b4bb7
--- /dev/null
+++ b/vorlesungen/slides/7/images/drehung.inc
@@ -0,0 +1,142 @@
+//
+// 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.23;
+#declare O = <0, 0, 0>;
+#declare at = 0.02;
+
+camera {
+ location <8.5, 2, 6.5>
+ look_at <0, 0, 0>
+ right x * imagescale
+ up y * imagescale
+}
+
+//light_source {
+// <-14, 20, -50> color White
+// area_light <1,0,0> <0,0,1>, 10, 10
+// adaptive 1
+// jitter
+//}
+
+light_source {
+ <41, 20, 10> color White
+ area_light <1,0,0> <0,0,1>, 10, 10
+ adaptive 1
+ jitter
+}
+
+sky_sphere {
+ pigment {
+ color rgb<1,1,1>
+ }
+}
+
+#macro arrow(from, to, arrowthickness, c)
+#declare arrowdirection = vnormalize(to - from);
+#declare arrowlength = vlength(to - from);
+union {
+ sphere {
+ from, 1.0 * 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
+#declare r = 1.0;
+
+arrow(< -r-0.2, 0.0, 0 >, < r+0.2, 0.0, 0.0 >, at, Gray)
+arrow(< 0.0, 0.0, -r-0.2>, < 0.0, 0.0, r+0.2 >, at, Gray)
+arrow(< 0.0, -r-0.2, 0 >, < 0.0, r+0.2, 0.0 >, at, Gray)
+
+#declare farbeX = rgb<1.0,0.2,0.6>;
+#declare farbeY = rgb<0.0,0.8,0.4>;
+#declare farbeZ = rgb<0.4,0.6,1.0>;
+
+#declare farbex = rgb<1.0,0.0,0.0>;
+#declare farbey = rgb<0.0,0.6,0.0>;
+#declare farbez = rgb<0.0,0.0,1.0>;
+
+#macro quadrant(X, Y, Z)
+ intersection {
+ sphere { O, 0.5 }
+ plane { -X, 0 }
+ plane { -Y, 0 }
+ plane { -Z, 0 }
+ pigment {
+ color rgb<1.0,0.6,0.2>
+ }
+ finish {
+ specular 0.95
+ metallic
+ }
+ }
+ arrow(O, X, 1.1*at, farbex)
+ arrow(O, Y, 1.1*at, farbey)
+ arrow(O, Z, 1.1*at, farbez)
+#end
+
+#macro drehung(X, Y, Z)
+// intersection {
+// sphere { O, 0.5 }
+// plane { -X, 0 }
+// plane { -Y, 0 }
+// plane { -Z, 0 }
+// pigment {
+// color Gray
+// }
+// finish {
+// specular 0.95
+// metallic
+// }
+// }
+ arrow(O, 1.1*X, 0.9*at, farbeX)
+ arrow(O, 1.1*Y, 0.9*at, farbeY)
+ arrow(O, 1.1*Z, 0.9*at, farbeZ)
+#end
+
+#macro achse(H)
+ cylinder { H, -H, at
+ pigment {
+ color rgb<0.6,0.4,0.2>
+ }
+ finish {
+ specular 0.95
+ metallic
+ }
+ }
+ cylinder { 0.003 * H, -0.003 * H, 1
+ pigment {
+ color rgbt<0.6,0.4,0.2,0.5>
+ }
+ finish {
+ specular 0.95
+ metallic
+ }
+ }
+#end
diff --git a/vorlesungen/slides/7/images/interpolation.ini b/vorlesungen/slides/7/images/interpolation.ini
new file mode 100644
index 0000000..f07c079
--- /dev/null
+++ b/vorlesungen/slides/7/images/interpolation.ini
@@ -0,0 +1,8 @@
+Input_File_Name=interpolation.pov
+Initial_Frame=0
+Final_Frame=50
+Initial_Clock=0
+Final_Clock=50
+Cyclic_Animation=off
+Pause_when_Done=off
+
diff --git a/vorlesungen/slides/7/images/interpolation.m b/vorlesungen/slides/7/images/interpolation.m
new file mode 100644
index 0000000..31554e8
--- /dev/null
+++ b/vorlesungen/slides/7/images/interpolation.m
@@ -0,0 +1,54 @@
+#
+# interpolation.m
+#
+# (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+#
+global N;
+N = 50;
+global A;
+global B;
+
+A = (pi / 2) * [
+ 0, 0, 0;
+ 0, 0, -1;
+ 0, 1, 0
+];
+g0 = expm(A)
+
+B = (pi / 2) * [
+ 0, 0, 1;
+ 0, 0, 0;
+ -1, 0, 0
+];
+g1 = expm(B)
+
+function retval = g(t)
+ global A;
+ global B;
+ retval = expm((1-t)*A+t*B);
+endfunction
+
+function dreibein(fn, M, funktion)
+ fprintf(fn, "%s(<%.4f,%.4f,%.4f>, <%.4f,%.4f,%.4f>, <%.4f,%.4f,%.4f>)\n",
+ funktion,
+ M(1,1), M(3,1), M(2,1),
+ M(1,2), M(3,2), M(2,2),
+ M(1,3), M(3,3), M(2,3));
+endfunction
+
+G = g1 * inverse(g0);
+[V, lambda] = eig(G);
+H = real(V(:,3));
+
+D = logm(g1*inverse(g0));
+
+for i = (0:N)
+ filename = sprintf("dreibein/d%03d.inc", i);
+ fn = fopen(filename, "w");
+ t = i/N;
+ dreibein(fn, g(t), "quadrant");
+ dreibein(fn, expm(t*D)*g0, "drehung");
+ fprintf(fn, "achse(<%.4f,%.4f,%.4f>)\n", H(1,1), H(3,1), H(2,1));
+ fclose(fn);
+endfor
+
diff --git a/vorlesungen/slides/7/images/interpolation.pov b/vorlesungen/slides/7/images/interpolation.pov
new file mode 100644
index 0000000..71e0257
--- /dev/null
+++ b/vorlesungen/slides/7/images/interpolation.pov
@@ -0,0 +1,10 @@
+//
+// commutator.pov
+//
+// (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+//
+#include "drehung.inc"
+
+#declare filename = concat("dreibein/d", str(clock, -3, 0), ".inc");
+#include filename
+
diff --git a/vorlesungen/slides/7/images/test.pov b/vorlesungen/slides/7/images/test.pov
new file mode 100644
index 0000000..5707be1
--- /dev/null
+++ b/vorlesungen/slides/7/images/test.pov
@@ -0,0 +1,7 @@
+//
+// test.pov
+//
+// (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+//
+#include "drehung.inc"
+#include "dreibein/d025.inc"