aboutsummaryrefslogtreecommitdiffstats
path: root/buch/papers/fresnel/images/schale.pov
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--buch/papers/fresnel/images/schale.pov191
1 files changed, 191 insertions, 0 deletions
diff --git a/buch/papers/fresnel/images/schale.pov b/buch/papers/fresnel/images/schale.pov
new file mode 100644
index 0000000..085a6a4
--- /dev/null
+++ b/buch/papers/fresnel/images/schale.pov
@@ -0,0 +1,191 @@
+//
+// schale.pov --
+//
+// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+//
+#version 3.7;
+#include "colors.inc"
+
+#declare O = <0,0,0>;
+
+global_settings {
+ assumed_gamma 1
+}
+
+#declare imagescale = 0.036;
+
+camera {
+ location <40, 20, -20>
+ look_at <0, 0.5, 0>
+ right 16/9 * x * imagescale
+ up y * imagescale
+}
+
+light_source {
+ <10, 10, -40> color White
+ area_light <1,0,0> <0,0,1>, 10, 10
+ adaptive 1
+ jitter
+}
+
+sky_sphere {
+ pigment {
+ color rgb<1,1,1>
+ }
+}
+
+sphere {
+ <0, 0, 0>, 1
+ pigment {
+ color rgb<0.8,0.8,0.8>
+ }
+ finish {
+ specular 0.95
+ metallic
+ }
+}
+
+#declare stripcolor = rgb<0.2,0.2,0.8>;
+
+#declare R = 1.002;
+
+#macro punkt(phi,theta)
+R * < cos(phi) * cos(theta), sin(theta), sin(phi) * cos(theta) >
+#end
+
+#declare N = 24;
+#declare thetaphi = 0.01;
+#declare thetawidth = pi * 0.008;
+#declare theta = function(phi) { phi * thetaphi }
+
+#declare axisdiameter = 0.007;
+
+cylinder {
+ < 0, -2, 0>, < 0, 2, 0>, axisdiameter
+ pigment {
+ color White
+ }
+ finish {
+ specular 0.95
+ metallic
+ }
+}
+
+#declare curvaturecircle = 0.008;
+#declare curvaturecirclecolor = rgb<0.4,0.8,0.4>;
+
+#declare phit = 12.8 * 2 * pi;
+#declare P = punkt(phit, theta(phit));
+#declare Q = <0, R / sin(theta(phit)), 0>;
+
+#declare e1 = vnormalize(P - Q) / tan(theta(phit));
+#declare e2 = vnormalize(vcross(e1, <0,1,0>)) / tan(theta(phit));
+#declare psimin = -0.1 * pi;
+#declare psimax = 0.1 * pi;
+#declare psistep = (psimax - psimin) / 30;
+
+union {
+ #declare psi = psimin;
+ #declare K = Q + cos(psi) * e1 + sin(psi) * e2;
+ #while (psi < psimax - psistep/2)
+ sphere { K, curvaturecircle }
+ #declare psi = psi + psistep;
+ #declare K2 = Q + cos(psi) * e1 + sin(psi) * e2;
+ cylinder { K, K2, curvaturecircle }
+ #declare K = K2;
+ #end
+ sphere { K, curvaturecircle }
+ pigment {
+ color curvaturecirclecolor
+ }
+ finish {
+ specular 0.95
+ metallic
+ }
+}
+
+object {
+ mesh {
+ #declare psi = psimin;
+ #declare K = Q + cos(psi) * e1 + sin(psi) * e2;
+ #while (psi < psimax - psistep/2)
+ #declare psi = psi + psistep;
+ #declare K2 = Q + cos(psi) * e1 + sin(psi) * e2;
+ triangle { K, K2, Q }
+ #declare K = K2;
+ #end
+ }
+ pigment {
+ color rgbt<0.4,0.8,0.4,0.5>
+ }
+ finish {
+ specular 0.95
+ metallic
+ }
+}
+
+union {
+ sphere { P, 0.02 }
+ sphere { Q, 0.02 }
+ cylinder { P, Q, 0.01 }
+ pigment {
+ color Red
+ }
+ finish {
+ specular 0.95
+ metallic
+ }
+}
+
+#declare phisteps = 300;
+#declare phistep = 2 * pi / phisteps;
+#declare phimin = 0;
+#declare phimax = N * 2 * pi;
+
+object {
+ mesh {
+ #declare phi = phimin;
+ #declare Poben = punkt(phi, theta(phi) + thetawidth);
+ #declare Punten = punkt(phi, theta(phi) - thetawidth);
+ triangle { O, Punten, Poben }
+ #while (phi < phimax - phistep/2)
+ #declare phi = phi + phistep;
+ #declare Poben2 = punkt(phi, theta(phi) + thetawidth);
+ #declare Punten2 = punkt(phi, theta(phi) - thetawidth);
+ triangle { O, Punten, Punten2 }
+ triangle { O, Poben, Poben2 }
+ triangle { Punten, Punten2, Poben }
+ triangle { Punten2, Poben2, Poben }
+ #declare Poben = Poben2;
+ #declare Punten = Punten2;
+ #end
+ triangle { O, Punten, Poben }
+ }
+ pigment {
+ color stripcolor
+ }
+ finish {
+ specular 0.8
+ metallic
+ }
+}
+
+union {
+ #declare phi = phimin;
+ #declare P = punkt(phi, theta(phi));
+ #while (phi < phimax - phistep/2)
+ sphere { P, 0.003 }
+ #declare phi = phi + phistep;
+ #declare P2 = punkt(phi, theta(phi));
+ cylinder { P, P2, 0.003 }
+ #declare P = P2;
+ #end
+ sphere { P, 0.003 }
+ pigment {
+ color stripcolor
+ }
+ finish {
+ specular 0.8
+ metallic
+ }
+}