summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/latex-graphics-companion/3-1-9.mp
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/latex-graphics-companion/3-1-9.mp')
-rw-r--r--Master/texmf-dist/doc/latex/latex-graphics-companion/3-1-9.mp87
1 files changed, 87 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/latex-graphics-companion/3-1-9.mp b/Master/texmf-dist/doc/latex/latex-graphics-companion/3-1-9.mp
new file mode 100644
index 00000000000..4cac01cd7eb
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/latex-graphics-companion/3-1-9.mp
@@ -0,0 +1,87 @@
+
+defaultfont:="ptmr8r";
+warningcheck:=0;
+beginfig(1)
+size=75;
+path p[];
+def pointtopair(expr x,y,z)=
+(-x*cosd a + y*sind a,
+ -x*sind a * sind b -y*cosd a * sind b
+ + z*cosd b)
+enddef;
+%
+%basic path (the shape of the boundary)
+%can be molded, can be constrained etc
+p1:= (0,3size){right}..
+ {down}(1.1size,1.75size){down}..
+ (.35size,.75size)..(.175size,.375size)..
+ {left}origin;
+%path with regular---nearly so---
+%distributed points
+n:=0;%number of points along the curve
+p10:= point 0 of p1 hide(n:=n+1)..
+ for t:=1 upto 19: hide(n:=n+1)
+ point .05t of p1..endfor
+ point 1 of p1 hide(n:=n+1)..
+ for t:=1 upto 13: hide(n:=n+1)
+ point 1+t/14 of p1..endfor
+ point 2 of p1 hide(n:=n+1)..
+ for t:=1 upto 3: hide(n:=n+1)
+ point 2+t/4 of p1..endfor
+ point 3 of p1 hide(n:=n+1)..
+ for t:=1 upto 3: hide(n:=n+1)
+ point 3+t/4 of p1..endfor
+ origin;
+%viewing angle parameters
+b:=-10; a:=60;
+p100:= for k=0 upto n-1:
+ pointtopair(0,xpart(point k of p10),
+ ypart(point k of p10))..
+ endfor pointtopair(0,0,0);
+p200:= for k=0 upto n-1:
+ pointtopair(xpart(point k of p10), 0,
+ ypart(point k of p10))..
+ endfor pointtopair(0,0,0);
+p300:= for k=0 upto n-1:
+ pointtopair(0,-xpart(point n-k of p10),
+ 3size-ypart(point n-k of p10))..
+ endfor pointtopair(0,0,0);
+p400:= for k=0 upto n-1:
+ pointtopair(-xpart(point n-k of p10),
+ 0, 3size-ypart(point n-k of p10))..
+ endfor pointtopair(0,0,0);
+%
+fill (-1.5size,-size)--(-1.5size,5size)--
+ (1.5size,5size)--(1.5size,-size)--cycle;
+%
+drawoptions(withcolor white);
+%
+pickup pencircle scaled .5pt;
+%Top ring and hang up (rope)
+draw point 0 of p100..
+ point 0 of p100 + (0,.1size)..cycle;
+draw point 0 of p100 + (0,.1size)..
+ point 0 of p100 + (0,3size);
+%Draw boundary curves
+draw p100; draw p200; draw p300; draw p400;
+%
+%Draw (partially hidden) regular surfaces
+pickup pencircle scaled .1pt;
+for k=0 step 1 until n:
+ draw point k of p200..point n-k of p300;
+endfor
+for k=0 upto n:
+ draw point k of p400..point n-k of p100;
+endfor
+fill p100..reverse p200..cycle withcolor black;
+%Front
+pickup pencircle scaled .1pt;
+draw p100; draw p200;
+draw point 0 of p100--origin;
+%
+%Draw regular surface which is in sight
+for k=0 step 1 until n:
+ draw point k of p100..point n-k of p200;
+endfor
+endfig;
+end;