cosic.rescue
clone your own copy | download snapshot

Snapshots | iceberg

Inside this repository

f8_15.ps
application/postscript

Download raw (16.8 KB)

%!PS-Adobe-3.0
%
% ********************************************************************************
%
% Figure 8.15 from the book: "The Theory of the Moire Phenomenon"
% by I. Amidror, published by Kluwer Academic Publishers, 1999.
%
%		* * *  Copyright (c) 1999 EPFL  * * *
%
% Author: I. Amidror
%
% Modified: June 9, 1999
%
% ********************************************************************************
%
% (a) ... (f): Superpositions of 2 or 3 screens using circles instead of dots:
%
% The screen parameters for each superposition are as follows:
% 
% theta1, theta2, theta3 - the screen angles, in degrees.
% p1, p2, p3 - the respective screen periods (main direction), in deciinches.
% p1y, p2y, p3y - the respective screen periods (perpendicular direction), in 
%	deciinches.
% xshifti, yshifti - the respective period-shifts for the i-th screen, in terms
%	of period fractions.
% len - the length (and width) of each of the screens, in centiinches.
%
% ********************************************************************************
%


/inch {72 mul} def
/centiinch {0.72 mul} def
0.5 centiinch setlinewidth


1 setlinecap


/len 220 def		% screen length in centiinches
/len2 len 2 div def


/Helvetica findfont
10 scalefont setfont


gsave
1.65 inch 7 inch translate


% ********************************** Fig. (a):

/theta1 30 def		% angle of screen A
/theta2 -30 def		% angle of screen B

/rot 0 def		% general rotation to prevent printer artifacts

/r1 4.5 def		% radius of circles in screen A
/r2 3.15 def		% radius of circles in screen B

/p1 3 def		% period of screen A
/p2 3 def		% period of screen B

/p1y 3 def		% period of screen A (in the perpendicular direction)
/p2y 3 def		% period of screen B (in the perpendicular direction)

/factor 5 def

/pp1 p1 factor mul def
/pp2 p2 factor mul def

/pp1y p1y factor mul def
/pp2y p2y factor mul def

/xshift1 0 p1 mul def		% x period-shift of screen A (e.g. 0.5)
/yshift1 0 p1y mul def		% y period-shift of screen A (e.g. 0.5)
/xshift2 0 p2 mul def		% x period-shift of screen B
/yshift2 0 p2y mul def		% y period-shift of screen B

/xshift1f xshift1 factor mul def
/yshift1f yshift1 factor mul def
/xshift2f xshift2 factor mul def
/yshift2f yshift2 factor mul def


% Draw screen A:
gsave
1 inch 2.5 inch translate

% Draw axes:
0.3 centiinch setlinewidth
-1.5 inch 0 inch moveto
3 inch 0 inch rlineto
0 inch -1.5 inch moveto
0 inch 3 inch rlineto
stroke

0.5 centiinch setlinewidth
theta1 rot add rotate
0 pp1y len		% draw rows of circles
{
	/ysave exch centiinch len2 pp1y div round pp1y mul yshift1f sub centiinch sub def
	0 pp1 len		% draw a row of circles
	{/xsave exch centiinch len2 pp1 div round pp1 mul xshift1f sub centiinch sub def
	newpath
	xsave ysave r1 centiinch 0 360 arc
	stroke} for
} for
-1.25 inch 0.97 inch moveto
(A) show
grestore


% Draw screen B:
gsave
1 inch 2.5 inch translate
theta2 rot add rotate
0 pp2y len		% draw rows of circles
{
	/ysave exch centiinch len2 pp2y div round pp2y mul yshift2f sub centiinch sub def
	0 pp2 len		% draw a rows of circles
	{/xsave exch centiinch len2 pp2 div round pp2 mul xshift2f sub centiinch sub def
	newpath
	xsave ysave r2 centiinch 0 360 arc
	stroke} for
} for
-1.25 inch 0.97 inch moveto
(B) show
grestore




% ********************************** Fig. (b):

/theta1 30 def		% angle of screen A
/theta2 -30 def		% angle of screen B

/rot 0 def		% general rotation to prevent printer artifacts

/r1 4.5 def		% radius of circles in screen A
/r2 3.15 def		% radius of circles in screen B


/p1 3 def		% period of screen A
/p2 3 def		% period of screen B

/p1y 3 def		% period of screen A (in the perpendicular direction)
/p2y 3 def		% period of screen B (in the perpendicular direction)

/factor 5 def

/pp1 p1 factor mul def
/pp2 p2 factor mul def

/pp1y p1y factor mul def
/pp2y p2y factor mul def

/xshift1 0.5 p1 mul def		% x period-shift of screen A (e.g. 0.5)
/yshift1 0.5 p1y mul def	% y period-shift of screen A (e.g. 0.5)
/xshift2 0.5 p2 mul def		% x period-shift of screen B
/yshift2 0.5 p2y mul def	% y period-shift of screen B

/xshift1f xshift1 factor mul def
/yshift1f yshift1 factor mul def
/xshift2f xshift2 factor mul def
/yshift2f yshift2 factor mul def



% Draw screen A:
gsave
4.2 inch 2.5 inch translate

% Draw axes:
0.3 centiinch setlinewidth
-1.5 inch 0 inch moveto
3 inch 0 inch rlineto
0 inch -1.5 inch moveto
0 inch 3 inch rlineto
stroke

0.5 centiinch setlinewidth
theta1 rot add rotate
0 pp1y len		% draw rows of circles
{
	/ysave exch centiinch len2 pp1y div round pp1y mul yshift1f sub centiinch sub def
	0 pp1 len		% draw a row of circles
	{/xsave exch centiinch len2 pp1 div round pp1 mul xshift1f sub centiinch sub def
	newpath
	xsave ysave r1 centiinch 0 360 arc
	stroke} for
} for
-1.2 inch 0.97 inch moveto
(A) show
grestore


% Draw screen B:
gsave
4.2 inch 2.5 inch translate
theta2 rot add rotate
0 pp2y len		% draw rows of circles
{
	/ysave exch centiinch len2 pp2y div round pp2y mul yshift2f sub centiinch sub def
	0 pp2 len		% draw a row of circles
	{/xsave exch centiinch len2 pp2 div round pp2 mul xshift2f sub centiinch sub def
	newpath
	xsave ysave r2 centiinch 0 360 arc
	stroke} for
} for
-1.2 inch 0.97 inch moveto
(B) show
grestore



grestore
gsave
1.65 inch 3.8 inch translate


% ********************************** Fig. (c):

/theta1 30 def		% angle of screen A
/theta2 -30 def		% angle of screen B
/theta3 0 def		% angle of screen C

/rot 0 def		% general rotation to prevent printer artifacts

/r1 4.5 def		% radius of circles in screen A
/r2 3.15 def		% radius of circles in screen B
/r3 1.75 def		% radius of circles in screen C


/p1 3 def		% period of screen A
/p2 3 def		% period of screen B
/p3 3 def		% period of screen C

/p1y 3 def		% period of screen A (in the perpendicular direction)
/p2y 3 def		% period of screen B (in the perpendicular direction)
/p3y 3 def		% period of screen C (in the perpendicular direction)

/factor 5 def

/pp1 p1 factor mul def
/pp2 p2 factor mul def
/pp3 p3 factor mul def

/pp1y p1y factor mul def
/pp2y p2y factor mul def
/pp3y p3y factor mul def

/xshift1 0 p1 mul def		% x period-shift of screen A (e.g. 0.5)
/yshift1 0 p1y mul def		% y period-shift of screen A (e.g. 0.5)
/xshift2 0 p2 mul def		% x period-shift of screen B
/yshift2 0 p2y mul def		% y period-shift of screen B
/xshift3 0 p3 mul def		% x period-shift of screen C
/yshift3 0 p3y mul def		% y period-shift of screen C

/xshift1f xshift1 factor mul def
/yshift1f yshift1 factor mul def
/xshift2f xshift2 factor mul def
/yshift2f yshift2 factor mul def
/xshift3f xshift3 factor mul def
/yshift3f yshift3 factor mul def



% Draw screen A:
gsave
1 inch 2.5 inch translate

% Draw axes:
0.3 centiinch setlinewidth
-1.5 inch 0 inch moveto
3 inch 0 inch rlineto
0 inch -1.5 inch moveto
0 inch 3 inch rlineto
stroke

0.5 centiinch setlinewidth
theta1 rot add rotate
0 pp1y len		% draw rows of circles
{
	/ysave exch centiinch len2 pp1y div round pp1y mul yshift1f sub centiinch sub def
	0 pp1 len		% draw a rows of circles
	{/xsave exch centiinch len2 pp1 div round pp1 mul xshift1f sub centiinch sub def
	newpath
	xsave ysave r1 centiinch 0 360 arc
	stroke} for
} for
-1.25 inch 0.97 inch moveto
(A) show
grestore


% Draw screen B:
gsave
1 inch 2.5 inch translate
theta2 rot add rotate
0 pp2y len		% draw rows of circles
{
	/ysave exch centiinch len2 pp2y div round pp2y mul yshift2f sub centiinch sub def
	0 pp2 len		% draw a row of circles
	{/xsave exch centiinch len2 pp2 div round pp2 mul xshift2f sub centiinch sub def
	newpath
	xsave ysave r2 centiinch 0 360 arc
	stroke} for
} for
-1.25 inch 0.97 inch moveto
(B) show
grestore


% Draw screen C:
gsave
1 inch 2.5 inch translate
theta3 rot add rotate
0 pp3y len		% draw rows of circles
{
	/ysave exch centiinch len2 pp3y div round pp3y mul yshift3f sub centiinch sub def
	0 pp3 len		% draw a row of circles
	{/xsave exch centiinch len2 pp3 div round pp3 mul xshift3f sub centiinch sub def
	newpath
	xsave ysave r3 centiinch 0 360 arc
	stroke} for
} for
-1.25 inch 0.97 inch moveto
(C) show
grestore


% ********************************** Fig. (d):

/theta1 30 def		% angle of screen A
/theta2 -30 def		% angle of screen B
/theta3 0 def		% angle of screen C

/rot 0 def		% general rotation to prevent printer artifacts

/r1 4.5 def		% radius of circles in screen A
/r2 3.15 def		% radius of circles in screen B
/r3 1.75 def		% radius of circles in screen C


/p1 3 def		% period of screen A
/p2 3 def		% period of screen B
/p3 3 def		% period of screen C

/p1y 3 def		% period of screen A (in the perpendicular direction)
/p2y 3 def		% period of screen B (in the perpendicular direction)
/p3y 3 def		% period of screen C (in the perpendicular direction)

/factor 5 def

/pp1 p1 factor mul def
/pp2 p2 factor mul def
/pp3 p3 factor mul def

/pp1y p1y factor mul def
/pp2y p2y factor mul def
/pp3y p3y factor mul def

/xshift1 0 p1 mul def		% x period-shift of screen A (e.g. 0.5)
/yshift1 0 p1y mul def		% y period-shift of screen A (e.g. 0.5)
/xshift2 0 p2 mul def		% x period-shift of screen B
/yshift2 0 p2y mul def		% y period-shift of screen B
/xshift3 0.5 p3 mul def		% x period-shift of screen C
/yshift3 0.5 p3y mul def	% y period-shift of screen C

/xshift1f xshift1 factor mul def
/yshift1f yshift1 factor mul def
/xshift2f xshift2 factor mul def
/yshift2f yshift2 factor mul def
/xshift3f xshift3 factor mul def
/yshift3f yshift3 factor mul def



% Draw screen A:
gsave
4.2 inch 2.5 inch translate

% Draw axes:
0.3 centiinch setlinewidth
-1.5 inch 0 inch moveto
3 inch 0 inch rlineto
0 inch -1.5 inch moveto
0 inch 3 inch rlineto
stroke

0.5 centiinch setlinewidth
theta1 rot add rotate
0 pp1y len		% draw rows of circles
{
	/ysave exch centiinch len2 pp1y div round pp1y mul yshift1f sub centiinch sub def
	0 pp1 len		% draw a row of circles
	{/xsave exch centiinch len2 pp1 div round pp1 mul xshift1f sub centiinch sub def
	newpath
	xsave ysave r1 centiinch 0 360 arc
	stroke} for
} for
-1.25 inch 0.92 inch moveto
(A) show
grestore


% Draw screen B:
gsave
4.2 inch 2.5 inch translate
theta2 rot add rotate
0 pp2y len		% draw rows of circles
{
	/ysave exch centiinch len2 pp2y div round pp2y mul yshift2f sub centiinch sub def
	0 pp2 len		% draw a row of circles
	{/xsave exch centiinch len2 pp2 div round pp2 mul xshift2f sub centiinch sub def
	newpath
	xsave ysave r2 centiinch 0 360 arc
	stroke} for
} for
-1.25 inch 0.97 inch moveto
(B) show
grestore


% Draw screen C:
gsave
4.2 inch 2.5 inch translate
theta3 rot add rotate
0 pp3y len		% draw rows of circles
{
	/ysave exch centiinch len2 pp3y div round pp3y mul yshift3f sub centiinch sub def
	0 pp3 len		% draw a row of circles
	{/xsave exch centiinch len2 pp3 div round pp3 mul xshift3f sub centiinch sub def
	newpath
	xsave ysave r3 centiinch 0 360 arc
	stroke} for
} for
-1.2 inch 0.97 inch moveto
(C) show
grestore

grestore
gsave
1.65 inch 0.6 inch translate


% ********************************** Fig. (e):

/theta1 30 def		% angle of screen A
/theta2 -30 def		% angle of screen B
/theta3 0 def		% angle of screen C

/rot 0 def		% general rotation to prevent printer artifacts

/r1 4.5 def		% radius of circles in screen A
/r2 3.15 def		% radius of circles in screen B
/r3 1.75 def		% radius of circles in screen C


/p1 3 def		% period of screen A
/p2 3 def		% period of screen B
/p3 3 def		% period of screen C

/p1y 3 def		% period of screen A (in the perpendicular direction)
/p2y 3 def		% period of screen B (in the perpendicular direction)
/p3y 3 def		% period of screen C (in the perpendicular direction)

/factor 5 def

/pp1 p1 factor mul def
/pp2 p2 factor mul def
/pp3 p3 factor mul def

/pp1y p1y factor mul def
/pp2y p2y factor mul def
/pp3y p3y factor mul def

/xshift1 0.5 p1 mul def		% x period-shift of screen A (e.g. 0.5)
/yshift1 0.5 p1y mul def	% y period-shift of screen A (e.g. 0.5)
/xshift2 0.5 p2 mul def		% x period-shift of screen B
/yshift2 0.5 p2y mul def	% y period-shift of screen B
/xshift3 0.5 p3 mul def		% x period-shift of screen C
/yshift3 0.5 p3y mul def	% y period-shift of screen C

/xshift1f xshift1 factor mul def
/yshift1f yshift1 factor mul def
/xshift2f xshift2 factor mul def
/yshift2f yshift2 factor mul def
/xshift3f xshift3 factor mul def
/yshift3f yshift3 factor mul def



% Draw screen A:
gsave
1 inch 2.5 inch translate

% Draw axes:
0.3 centiinch setlinewidth
-1.5 inch 0 inch moveto
3 inch 0 inch rlineto
0 inch -1.5 inch moveto
0 inch 3 inch rlineto
stroke

0.5 centiinch setlinewidth
theta1 rot add rotate
0 pp1y len		% draw rows of circles
{
	/ysave exch centiinch len2 pp1y div round pp1y mul yshift1f sub centiinch sub def
	0 pp1 len		% draw a row of circles
	{/xsave exch centiinch len2 pp1 div round pp1 mul xshift1f sub centiinch sub def
	newpath
	xsave ysave r1 centiinch 0 360 arc
	stroke} for
} for
-1.2 inch 0.97 inch moveto
(A) show
grestore


% Draw screen B:
gsave
1 inch 2.5 inch translate
theta2 rot add rotate
0 pp2y len		% draw rows of circles
{
	/ysave exch centiinch len2 pp2y div round pp2y mul yshift2f sub centiinch sub def
	0 pp2 len		% draw a row of circles
	{/xsave exch centiinch len2 pp2 div round pp2 mul xshift2f sub centiinch sub def
	newpath
	xsave ysave r2 centiinch 0 360 arc
	stroke} for
} for
-1.2 inch 0.97 inch moveto
(B) show
grestore


% Draw screen C:
gsave
1 inch 2.5 inch translate
theta3 rot add rotate
0 pp3y len		% draw rows of circles
{
	/ysave exch centiinch len2 pp3y div round pp3y mul yshift3f sub centiinch sub def
	0 pp3 len		% draw a row of circles
	{/xsave exch centiinch len2 pp3 div round pp3 mul xshift3f sub centiinch sub def
	newpath
	xsave ysave r3 centiinch 0 360 arc
	stroke} for
} for
-1.2 inch 0.97 inch moveto
(C) show
grestore


% ********************************** Fig. (f):

/theta1 30 def		% angle of screen A
/theta2 -30 def		% angle of screen B
/theta3 0 def		% angle of screen C

/rot 0 def		% general rotation to prevent printer artifacts

/r1 4.5 def		% radius of circles in screen A
/r2 3.15 def		% radius of circles in screen B
/r3 1.75 def		% radius of circles in screen C


/p1 3 def		% period of screen A
/p2 3 def		% period of screen B
/p3 3 def		% period of screen C

/p1y 3 def		% period of screen A (in the perpendicular direction)
/p2y 3 def		% period of screen B (in the perpendicular direction)
/p3y 3 def		% period of screen C (in the perpendicular direction)

/factor 5 def

/pp1 p1 factor mul def
/pp2 p2 factor mul def
/pp3 p3 factor mul def

/pp1y p1y factor mul def
/pp2y p2y factor mul def
/pp3y p3y factor mul def

/xshift1 0 p1 mul def		% x period-shift of screen A (e.g. 0.5)
/yshift1 0 p1y mul def		% y period-shift of screen A (e.g. 0.5)
/xshift2 0 p2 mul def		% x period-shift of screen B
/yshift2 0 p2y mul def		% y period-shift of screen B
/xshift3 0.5 p3 mul def		% x period-shift of screen C
/yshift3 0 p3y mul def		% y period-shift of screen C

/xshift1f xshift1 factor mul def
/yshift1f yshift1 factor mul def
/xshift2f xshift2 factor mul def
/yshift2f yshift2 factor mul def
/xshift3f xshift3 factor mul def
/yshift3f yshift3 factor mul def



% Draw screen A:
gsave
4.2 inch 2.5 inch translate

% Draw axes:
0.3 centiinch setlinewidth
-1.5 inch 0 inch moveto
3 inch 0 inch rlineto
0 inch -1.5 inch moveto
0 inch 3 inch rlineto
stroke

0.5 centiinch setlinewidth
theta1 rot add rotate
0 pp1y len		% draw rows of circles
{
	/ysave exch centiinch len2 pp1y div round pp1y mul yshift1f sub centiinch sub def
	0 pp1 len		% draw a row of circles
	{/xsave exch centiinch len2 pp1 div round pp1 mul xshift1f sub centiinch sub def
	newpath
	xsave ysave r1 centiinch 0 360 arc
	stroke} for
} for
-1.25 inch 0.92 inch moveto
(A) show
grestore


% Draw screen B:
gsave
4.2 inch 2.5 inch translate
theta2 rot add rotate
0 pp2y len		% draw rows of circles
{
	/ysave exch centiinch len2 pp2y div round pp2y mul yshift2f sub centiinch sub def
	0 pp2 len		% draw a row of circles
	{/xsave exch centiinch len2 pp2 div round pp2 mul xshift2f sub centiinch sub def
	newpath
	xsave ysave r2 centiinch 0 360 arc
	stroke} for
} for
-1.25 inch 0.97 inch moveto
(B) show
grestore


% Draw screen C:
gsave
4.2 inch 2.5 inch translate
theta3 rot add rotate
0 pp3y len		% draw rows of circles
{
	/ysave exch centiinch len2 pp3y div round pp3y mul yshift3f sub centiinch sub def
	0 pp3 len		% draw a row of circles
	{/xsave exch centiinch len2 pp3 div round pp3 mul xshift3f sub centiinch sub def
	newpath
	xsave ysave r3 centiinch 0 360 arc
	stroke} for
} for
-1.2 inch 0.97 inch moveto
(C) show
grestore

grestore



/Times-Roman findfont
12 scalefont setfont


0 0 translate
1.4 inch 8.2 inch moveto
((a)) show
4.6 inch 8.2 inch moveto
((b)) show
1.4 inch 5.0 inch moveto
((c)) show
4.6 inch 5.0 inch moveto
((d)) show
1.4 inch 1.8 inch moveto
((e)) show
4.6 inch 1.8 inch moveto
((f)) show



gsave
2 inch 1 inch translate
0 inch 0 inch moveto
/Times-Bold findfont
12 scalefont setfont
(Figure 8.15) show
/Times-Roman findfont
12 scalefont setfont
(  from the book:  ) show
/Times-Italic findfont
12 scalefont setfont
(The Theory of the Moire) show
-0.06 inch 0 inch rmoveto
(\302 Phenomenon) show
/Times-Roman findfont
12 scalefont setfont
0 inch -0.25 inch moveto
(    by I. Amidror, published by Kluwer Academic Publishers, 1999.) show
grestore



showpage