From 864b17ee949de5c14ebc3bbf50a90178b4b804f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Wed, 15 Jun 2022 20:25:27 +0200 Subject: fix some minor issues --- buch/chapters/110-elliptisch/images/Makefile | 7 +- .../chapters/110-elliptisch/images/jacobiplots.pdf | Bin 56975 -> 56975 bytes buch/chapters/110-elliptisch/images/kegelpara.pdf | Bin 139626 -> 202828 bytes buch/chapters/110-elliptisch/images/kegelpara.pov | 122 +++++++++++++++++++-- buch/chapters/110-elliptisch/images/kegelpara.tex | 6 +- .../110-elliptisch/images/torusschnitt.pdf | Bin 137159 -> 301677 bytes .../110-elliptisch/images/torusschnitt.pov | 88 ++++++++++++++- buch/chapters/110-elliptisch/lemniskate.tex | 12 +- 8 files changed, 211 insertions(+), 24 deletions(-) (limited to 'buch/chapters') diff --git a/buch/chapters/110-elliptisch/images/Makefile b/buch/chapters/110-elliptisch/images/Makefile index 30642fe..c8f98cb 100644 --- a/buch/chapters/110-elliptisch/images/Makefile +++ b/buch/chapters/110-elliptisch/images/Makefile @@ -79,11 +79,14 @@ slcldata.tex: slcl slcl.pdf: slcl.tex slcldata.tex pdflatex slcl.tex +KEGELSIZE = -W256 -H256 +KEGELSIZE = -W128 -H128 +KEGELSIZE = -W1080 -H1080 kegelpara.png: kegelpara.pov - povray +A0.1 -W1080 -H1080 -Okegelpara.png kegelpara.pov + povray +A0.1 $(KEGELSIZE) -Okegelpara.png kegelpara.pov kegelpara.jpg: kegelpara.png Makefile - convert -extract 1080x1000+0+40 kegelpara.png \ + convert -extract 1080x1040+0+0 kegelpara.png \ -density 300 -units PixelsPerInch kegelpara.jpg kegelpara.pdf: kegelpara.tex kegelpara.jpg diff --git a/buch/chapters/110-elliptisch/images/jacobiplots.pdf b/buch/chapters/110-elliptisch/images/jacobiplots.pdf index 4c74a5c..c11affc 100644 Binary files a/buch/chapters/110-elliptisch/images/jacobiplots.pdf and b/buch/chapters/110-elliptisch/images/jacobiplots.pdf differ diff --git a/buch/chapters/110-elliptisch/images/kegelpara.pdf b/buch/chapters/110-elliptisch/images/kegelpara.pdf index 6683709..2f76593 100644 Binary files a/buch/chapters/110-elliptisch/images/kegelpara.pdf and b/buch/chapters/110-elliptisch/images/kegelpara.pdf differ diff --git a/buch/chapters/110-elliptisch/images/kegelpara.pov b/buch/chapters/110-elliptisch/images/kegelpara.pov index 5d85eed..13b66cc 100644 --- a/buch/chapters/110-elliptisch/images/kegelpara.pov +++ b/buch/chapters/110-elliptisch/images/kegelpara.pov @@ -67,11 +67,11 @@ union { } #end -arrow(<-2,0,0>,<2,0,0>,0.02,White) -arrow(<0,-2,0>,<0,2,0>,0.02,White) -arrow(<0,0,-2>,<0,0,2>,0.02,White) +arrow(<-2.6,0,0>,<2.5,0,0>,0.02,White) +arrow(<0,-2,0>,<0,2.3,0>,0.02,White) +arrow(<0,0,-3.2>,<0,0,3.7>,0.02,White) -#declare epsilon = 0.001; +#declare epsilon = 0.0001; #declare l = 1.5; #macro Kegel(farbe) @@ -94,6 +94,54 @@ union { } #end +#macro Kegelpunkt(xx, phi) + < xx, xx * sin(phi), xx * cos(phi) > +#end + +#macro Kegelgitter(farbe, r) +union { + #declare s = 0; + #declare smax = 2 * pi; + #declare sstep = pi / 6; + #while (s < smax - sstep/2) + cylinder { Kegelpunkt(l, s), Kegelpunkt(-l, s), r } + #declare s = s + sstep; + #end + #declare phimax = 2 * pi; + #declare phisteps = 100; + #declare phistep = phimax / phisteps; + #declare xxstep = 0.5; + #declare xxmax = 2; + #declare xx = xxstep; + #while (xx < xxmax - xxstep/2) + #declare phi = 0; + #while (phi < phimax - phistep/2) + cylinder { + Kegelpunkt(xx, phi), + Kegelpunkt(xx, phi + phistep), + r + } + sphere { Kegelpunkt(xx, phi), r } + cylinder { + Kegelpunkt(-xx, phi), + Kegelpunkt(-xx, phi + phistep), + r + } + sphere { Kegelpunkt(-xx, phi), r } + #declare phi = phi + phistep; + #end + #declare xx = xx + xxstep; + #end + pigment { + color farbe + } + finish { + specular 0.9 + metallic + } +} +#end + #macro F(w, r) #end @@ -139,6 +187,50 @@ mesh { } #end +#macro Paraboloidgitter(farbe, gr) +union { + #declare phi = 0; + #declare phimax = 2 * pi; + #declare phistep = pi / 6; + + #declare rmax = 1.5; + #declare rsteps = 100; + #declare rstep = rmax / rsteps; + + #while (phi < phimax - phistep/2) + #declare r = rstep; + #while (r < rmax - rstep/2) + cylinder { F(phi, r), F(phi, r + rstep), gr } + sphere { F(phi, r), gr } + #declare r = r + rstep; + #end + #declare phi = phi + phistep; + #end + + #declare rstep = 0.2; + #declare r = rstep; + + #declare phisteps = 100; + #declare phistep = phimax / phisteps; + #while (r < rmax) + #declare phi = 0; + #while (phi < phimax - phistep/2) + cylinder { F(phi, r), F(phi + phistep, r), gr } + sphere { F(phi, r), gr } + #declare phi = phi + phistep; + #end + #declare r = r + rstep; + #end + pigment { + color farbe + } + finish { + specular 0.9 + metallic + } +} +#end + #declare a = sqrt(2); #macro G(phi,sg) < a*sg*sqrt(cos(2*phi))*cos(phi), a*cos(2*phi), a*sqrt(cos(2*phi))*sin(phi)> @@ -215,11 +307,23 @@ union { } #end -#declare kegelfarbe = rgbt<0.2,0.6,0.2,0.2>; -#declare paraboloidfarbe = rgbt<0.2,0.6,1.0,0.2>; +#declare kegelfarbe = rgbf<0.2,0.6,0.2,0.2>; +#declare kegelgitterfarbe = rgb<0.2,0.8,0.2>; +#declare paraboloidfarbe = rgbf<0.2,0.6,1.0,0.2>; +#declare paraboloidgitterfarbe = rgb<0.4,1,1>; + +//intersection { +// union { + Paraboloid(paraboloidfarbe) + Paraboloidgitter(paraboloidgitterfarbe, 0.004) + + Kegel(kegelfarbe) + Kegelgitter(kegelgitterfarbe, 0.004) +// } +// plane { <0, 0, -1>, 0.6 } +//} + -Paraboloid(paraboloidfarbe) -Kegel(kegelfarbe) -Lemniskate3D(0.02, Blue) +Lemniskate3D(0.02, rgb<0.8,0.0,0.8>) Lemniskate(0.02, Red) Projektion(0.01, Yellow) diff --git a/buch/chapters/110-elliptisch/images/kegelpara.tex b/buch/chapters/110-elliptisch/images/kegelpara.tex index 5a724ee..8fcefbf 100644 --- a/buch/chapters/110-elliptisch/images/kegelpara.tex +++ b/buch/chapters/110-elliptisch/images/kegelpara.tex @@ -31,9 +31,9 @@ \fill (0,0) circle[radius=0.05]; }{} -\node at (3.3,-1.0) {$X$}; -\node at (0.2,3.4) {$Z$}; -\node at (-2.5,-1.4) {$-Y$}; +\node at (4.1,-1.4) {$X$}; +\node at (0.2,3.8) {$Z$}; +\node at (4.0,1.8) {$Y$}; \end{tikzpicture} diff --git a/buch/chapters/110-elliptisch/images/torusschnitt.pdf b/buch/chapters/110-elliptisch/images/torusschnitt.pdf index 2f8c204..11bd353 100644 Binary files a/buch/chapters/110-elliptisch/images/torusschnitt.pdf and b/buch/chapters/110-elliptisch/images/torusschnitt.pdf differ diff --git a/buch/chapters/110-elliptisch/images/torusschnitt.pov b/buch/chapters/110-elliptisch/images/torusschnitt.pov index 94190be..43d50c6 100644 --- a/buch/chapters/110-elliptisch/images/torusschnitt.pov +++ b/buch/chapters/110-elliptisch/images/torusschnitt.pov @@ -123,9 +123,34 @@ union { } #end -#macro Ebene(farbe) -box { - <-1.8, 0, -1.4>, <1.8, 0.001, 1.4> +#macro Ebene(l, b, farbe) +mesh { + triangle { <-l, 0, -b>, < l, 0, -b>, < l, 0, b> } + triangle { <-l, 0, -b>, < l, 0, b>, <-l, 0, b> } + pigment { + color farbe + } + finish { + specular 0.9 + metallic + } +} +#end + +#macro Ebenengitter(l, b, s, r, farbe) +union { + #declare lmax = floor(l / s); + #declare ll = -lmax; + #while (ll <= lmax) + cylinder { , , r } + #declare ll = ll + 1; + #end + #declare bmax = floor(b / s); + #declare bb = -bmax; + #while (bb <= bmax) + cylinder { <-l, 0, bb * s>, , r } + #declare bb = bb + 1; + #end pigment { color farbe } @@ -141,6 +166,59 @@ box { b * < (2 + cos(theta)) * cos(phi), (2 + cos(theta)) * sin(phi) + 1, sin(theta) > #end +#macro breitenkreis(theta, r) + #declare phi = 0; + #declare phimax = 2 * pi; + #declare phisteps = 200; + #declare phistep = phimax / phisteps; + #while (phi < phimax - phistep/2) + cylinder { T(phi, theta), T(phi + phistep, theta), r } + sphere { T(phi, theta), r } + #declare phi = phi + phistep; + #end +#end + +#macro laengenkreis(phi, r) + #declare theta = 0; + #declare thetamax = 2 * pi; + #declare thetasteps = 200; + #declare thetastep = thetamax / thetasteps; + #while (theta < thetamax - thetastep/2) + cylinder { T(phi, theta), T(phi, theta + thetastep), r } + sphere { T(phi, theta), r } + #declare theta = theta + thetastep; + #end +#end + +#macro Torusgitter(farbe, r) +union { + #declare phi = 0; + #declare phimax = 2 * pi; + #declare phistep = pi / 6; + #while (phi < phimax - phistep/2) + laengenkreis(phi, r) + #declare phi = phi + phistep; + #end + #declare thetamax = pi; + #declare thetastep = pi / 6; + #declare theta = thetastep; + #while (theta < thetamax - thetastep/2) + breitenkreis(theta, r) + breitenkreis(thetamax + theta, r) + #declare theta = theta + thetastep; + #end + breitenkreis(0, 1.5 * r) + breitenkreis(pi, 1.5 * r) + pigment { + color farbe + } + finish { + specular 0.9 + metallic + } +} +#end + #macro Torus(farbe) mesh { #declare phi = 0; @@ -181,5 +259,7 @@ mesh { #declare ebenenfarbe = rgbt<0.2,0.6,1.0,0.2>; Lemniskate(0.02, Red) -Ebene(ebenenfarbe) +Ebene(1.8, 1.4, ebenenfarbe) +Ebenengitter(1.8, 1.4, 0.5, 0.005, rgb<0.4,1,1>) Torus(torusfarbe) +Torusgitter(Yellow, 0.005) diff --git a/buch/chapters/110-elliptisch/lemniskate.tex b/buch/chapters/110-elliptisch/lemniskate.tex index f81f0e2..fceaadf 100644 --- a/buch/chapters/110-elliptisch/lemniskate.tex +++ b/buch/chapters/110-elliptisch/lemniskate.tex @@ -81,7 +81,7 @@ Blatt der Lemniskate. \begin{figure} \center \includegraphics{chapters/110-elliptisch/images/kegelpara.pdf} -\caption{Leminiskate (rot) als Projektion (gelb) der Schnittkurve (blau) +\caption{Leminiskate (rot) als Projektion (gelb) der Schnittkurve (pink) eines geraden Kreiskegels (grün) mit einem Rotationsparaboloid (hellblau). \label{buch:elliptisch:lemniskate:kegelpara}} @@ -126,7 +126,7 @@ kann mit der Parametrisierung \begin{pmatrix} (2+\cos s) \cos t \\ \sin s \\ -(2+\cos s) \sin t +(2+\cos s) \sin t + 1 \end{pmatrix} \] beschrieben werden. @@ -134,9 +134,9 @@ Die Gleichung $z=1$ beschreibt eine achsparallele Ebene, die den inneren Äquator berührt. Die Schnittkurve erfüllt daher \[ -(2+\cos s)\sin t = 1, +(2+\cos s)\sin t + 1 = 0, \] -was wir auch als $2 +\cos s = 1/\sin t$ schreiben können. +was wir auch als $2 +\cos s = -1/\sin t$ schreiben können. Wir müssen nachprüfen dass die Koordinaten $X=(2+\cos s)\cos t$ und $Y=\sin s$ die Gleichung einer Lemniskate erfüllen. @@ -147,9 +147,9 @@ X = (2+\cos s) \cos t = -\frac{1}{\sin t}\cos t +-\frac{1}{\sin t}\cos t = -\frac{\cos t}{\sin t} +-\frac{\cos t}{\sin t} \qquad\Rightarrow\qquad X^2 = -- cgit v1.2.1