cosic.rescue
clone your own copy | download snapshot

Snapshots | iceberg

Inside this repository

f3_3.ps
application/postscript

Download raw (15.0 KB)

%!PS-Adobe-3.0
%
% ********************************************************************************
%
% Figure 3.3 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), ... ,(i) - Superpositions of 2 dot-screens:
%
% The screen parameters are as follows:
% 
% theta1, theta2 - the screen angles, in degrees.
% p1, p2 - the respective screen periods (main direction), in deciinches.
% p1y, p2y - 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
1.2 centiinch setlinewidth


1 setlinecap


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


/Helvetica findfont
10 scalefont setfont


0 inch 1.08 inch translate
gsave


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

/theta1 0 def		% angle of screen A
/theta2 5 def		% angle of screen B

/rot 0 def		% general rotation to prevent printer artifacts

/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)

/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



% Draw screen A:
gsave
2 inch 8.7 inch translate
theta1 rot add rotate
0 p1y len		% draw rows of dots
{newpath
	/ysave exch centiinch len2 p1y div round p1y mul yshift1 sub centiinch sub def
	0 p1 len		% draw a row of dots
	{centiinch len2 p1 div round p1 mul xshift1 sub centiinch sub ysave moveto
	0 0 rlineto} for
	stroke
} for
-0.9 inch -0.75 inch moveto
(A) show
grestore


% Draw screen B:
gsave
2 inch 8.7 inch translate
theta2 rot add rotate
0 p2y len		% draw rows of dots
{newpath
	/ysave exch centiinch len2 p2y div round p2y mul yshift2 sub centiinch sub def
	0 p2 len		% draw a row of dots
	{centiinch len2 p2 div round p2 mul xshift2 sub centiinch sub ysave moveto
	0 0 rlineto} for
	stroke
} for
-0.9 inch -0.8 inch moveto
(B) show
grestore

gsave
2 inch 8.7 inch translate
/Times-Roman findfont
12 scalefont setfont
-0.07 inch -1.2 inch moveto
((a)) show
grestore


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

/theta1 0 def		% angle of screen A
/theta2 15 def		% angle of screen B

/rot 0 def		% general rotation to prevent printer artifacts

/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)

/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


% Draw screen A:
gsave
4.2 inch 8.7 inch translate
theta1 rot add rotate
0 p1y len		% draw rows of dots
{newpath
	/ysave exch centiinch len2 p1y div round p1y mul yshift1 sub centiinch sub def
	0 p1 len		% draw a row of dots
	{centiinch len2 p1 div round p1 mul xshift1 sub centiinch sub ysave moveto
	0 0 rlineto} for
	stroke
} for
-0.9 inch -0.75 inch moveto
(A) show
grestore


% Draw screen B:
gsave
4.2 inch 8.7 inch translate
theta2 rot add rotate
0 p2y len		% draw rows of dots
{newpath
	/ysave exch centiinch len2 p2y div round p2y mul yshift2 sub centiinch sub def
	0 p2 len		% draw a row of dots
	{centiinch len2 p2 div round p2 mul xshift2 sub centiinch sub ysave moveto
	0 0 rlineto} for
	stroke
} for
-0.9 inch -0.75 inch moveto
(B) show
grestore


gsave
4.2 inch 8.7 inch translate
/Times-Roman findfont
12 scalefont setfont
-0.07 inch -1.2 inch moveto
((b)) show
grestore


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

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

/rot 0 def		% general rotation to prevent printer artifacts

/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)

/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



% Draw screen A:
gsave
6.4 inch 8.7 inch translate
theta1 rot add rotate
0 p1y len		% draw rows of dots
{newpath
	/ysave exch centiinch len2 p1y div round p1y mul yshift1 sub centiinch sub def
	0 p1 len		% draw a row of dots
	{centiinch len2 p1 div round p1 mul xshift1 sub centiinch sub ysave moveto
	0 0 rlineto} for
	stroke
} for
-0.9 inch -0.75 inch moveto
(A) show
grestore


% Draw screen B:
gsave
6.4 inch 8.7 inch translate
theta2 rot add rotate
0 p2y len		% draw rows of dots
{newpath
	/ysave exch centiinch len2 p2y div round p2y mul yshift2 sub centiinch sub def
	0 p2 len		% draw a row of dots
	{centiinch len2 p2 div round p2 mul xshift2 sub centiinch sub ysave moveto
	0 0 rlineto} for
	stroke
} for
-0.9 inch -0.75 inch moveto
(B) show
grestore


gsave
6.4 inch 8.7 inch translate
/Times-Roman findfont
12 scalefont setfont
-0.07 inch -1.2 inch moveto
((c)) show
grestore


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

/theta1 0 def		% angle of screen A
/theta2 34.5 def	% angle of screen B

/rot 0 def		% general rotation to prevent printer artifacts

/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)

/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



% Draw screen A:
gsave
2 inch 6.1 inch translate
theta1 rot add rotate
0 p1y len		% draw rows of dots
{newpath
	/ysave exch centiinch len2 p1y div round p1y mul yshift1 sub centiinch sub def
	0 p1 len		% draw a row of dots
	{centiinch len2 p1 div round p1 mul xshift1 sub centiinch sub ysave moveto
	0 0 rlineto} for
	stroke
} for
-0.9 inch -0.75 inch moveto
(A) show
grestore


% Draw screen B:
gsave
2 inch 6.1 inch translate
theta2 rot add rotate
0 p2y len		% draw rows of dots
{newpath
	/ysave exch centiinch len2 p2y div round p2y mul yshift2 sub centiinch sub def
	0 p2 len		% draw a row of dots
	{centiinch len2 p2 div round p2 mul xshift2 sub centiinch sub ysave moveto
	0 0 rlineto} for
	stroke
} for
-0.9 inch -0.75 inch moveto
(B) show
grestore


gsave
2 inch 6.1 inch translate
/Times-Roman findfont
12 scalefont setfont
-0.07 inch -1.25 inch moveto
((d)) show
grestore


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

/theta1 0 def		% angle of screen A
/theta2 36.87 def	% angle of screen B

/rot 0 def		% general rotation to prevent printer artifacts

/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)

/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



% Draw screen A:
gsave
4.2 inch 6.1 inch translate
theta1 rot add rotate
0 p1y len		% draw rows of dots
{newpath
	/ysave exch centiinch len2 p1y div round p1y mul yshift1 sub centiinch sub def
	0 p1 len		% draw a row of dots
	{centiinch len2 p1 div round p1 mul xshift1 sub centiinch sub ysave moveto
	0 0 rlineto} for
	stroke
} for
-0.9 inch -0.75 inch moveto
(A) show
grestore


% Draw screen B:
gsave
4.2 inch 6.1 inch translate
theta2 rot add rotate
0 p2y len		% draw rows of dots
{newpath
	/ysave exch centiinch len2 p2y div round p2y mul yshift2 sub centiinch sub def
	0 p2 len		% draw a row of dots
	{centiinch len2 p2 div round p2 mul xshift2 sub centiinch sub ysave moveto
	0 0 rlineto} for
	stroke
} for
-0.9 inch -0.75 inch moveto
(B) show
grestore


gsave
4.2 inch 6.1 inch translate
/Times-Roman findfont
12 scalefont setfont
-0.07 inch -1.25 inch moveto
((e)) show
grestore



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

/theta1 0 def		% angle of screen A
/theta2 45 def		% angle of screen B

/rot 0 def		% general rotation to prevent printer artifacts

/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)

/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



% Draw screen A:
gsave
6.4 inch 6.1 inch translate
theta1 rot add rotate
0 p1y len		% draw rows of dots
{newpath
	/ysave exch centiinch len2 p1y div round p1y mul yshift1 sub centiinch sub def
	0 p1 len		% draw a row of dots
	{centiinch len2 p1 div round p1 mul xshift1 sub centiinch sub ysave moveto
	0 0 rlineto} for
	stroke
} for
-0.9 inch -0.75 inch moveto
(A) show
grestore


% Draw screen B:
gsave
6.4 inch 6.1 inch translate
theta2 rot add rotate
0 p2y len		% draw rows of dots
{newpath
	/ysave exch centiinch len2 p2y div round p2y mul yshift2 sub centiinch sub def
	0 p2 len		% draw a row of dots
	{centiinch len2 p2 div round p2 mul xshift2 sub centiinch sub ysave moveto
	0 0 rlineto} for
	stroke
} for
-0.9 inch -0.65 inch moveto
(B) show
grestore


gsave
6.4 inch 6.1 inch translate
/Times-Roman findfont
12 scalefont setfont
-0.07 inch -1.25 inch moveto
((f)) show
grestore


% ************************************** Fig. (g):

/theta1 0 def		% angle of screen A
/theta2 10 def		% angle of screen B

/rot 0 def		% general rotation to prevent printer artifacts

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

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

/xshift1 0 p1 mul def		% x phase shift for first dot lattice (e.g. 0.5)
/yshift1 0 p1y mul def		% y phase shift for first dot lattice (e.g. 0.5)
/xshift2 0 p2 mul def		% x phase shift for second dot lattice
/yshift2 0 p2y mul def		% y phase shift for second dot lattice


% Draw screen A:
gsave
2 inch 3.5 inch translate
theta1 rot add rotate
0 p1y len		% draw rows of dots
{newpath
	/ysave exch centiinch len2 p1y div round p1y mul yshift1 sub centiinch sub def
	0 p1 len		% draw a row of dots
	{centiinch len2 p1 div round p1 mul xshift1 sub centiinch sub ysave moveto
	0 0 rlineto} for
	stroke
} for
-0.9 inch -0.75 inch moveto
(A) show
grestore


% Draw screen B:
gsave
0.6 centiinch setlinewidth
2 inch 3.5 inch translate
theta2 rot add rotate
0 p2y len		% draw rows of dots
{newpath
	/ysave exch centiinch len2 p2y div round p2y mul yshift2 sub centiinch sub def
	0 p2 len		% draw a row of dots
	{centiinch len2 p2 div round p2 mul xshift2 sub centiinch sub ysave moveto
	0 0 rlineto} for
	stroke
} for
-0.9 inch -0.75 inch moveto
(B) show
grestore


gsave
2 inch 3.5 inch translate
/Times-Roman findfont
12 scalefont setfont
-0.07 inch -1.2 inch moveto
((g)) show
grestore


% ****************************************** Fig. (h):

/theta1 0 def		% angle of screen A
/theta2 24 def		% angle of screen B

/rot 0 def		% general rotation to prevent printer artifacts

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

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

/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



% Draw screen A:
gsave
4.2 inch 3.5 inch translate
theta1 rot add rotate
0 p1y len		% draw rows of dots
{newpath
	/ysave exch centiinch len2 p1y div round p1y mul yshift1 sub centiinch sub def
	0 p1 len		% draw a row of dots
	{centiinch len2 p1 div round p1 mul xshift1 sub centiinch sub ysave moveto
	0 0 rlineto} for
	stroke
} for
-0.9 inch -0.75 inch moveto
(A) show
grestore


% Draw screen B:
gsave
0.75 centiinch setlinewidth
4.2 inch 3.5 inch translate
theta2 rot add rotate
0 p2y len		% draw rows of dots
{newpath
	/ysave exch centiinch len2 p2y div round p2y mul yshift2 sub centiinch sub def
	0 p2 len		% draw a row of dots
	{centiinch len2 p2 div round p2 mul xshift2 sub centiinch sub ysave moveto
	0 0 rlineto} for
	stroke
} for
-0.9 inch -0.75 inch moveto
(B) show
grestore


gsave
4.2 inch 3.5 inch translate
/Times-Roman findfont
12 scalefont setfont
-0.07 inch -1.2 inch moveto
((h)) show
grestore


% ****************************************** Fig. (i):

/theta1 0 def		% angle of screen A
/theta2 41 def		% angle of screen B

/rot 0 def		% general rotation to prevent printer artifacts

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

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

/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



% Draw screen A:
gsave
6.4 inch 3.5 inch translate
theta1 rot add rotate
0 p1y len		% draw rows of dots
{newpath
	/ysave exch centiinch len2 p1y div round p1y mul yshift1 sub centiinch sub def
	0 p1 len		% draw a row of dots
	{centiinch len2 p1 div round p1 mul xshift1 sub centiinch sub ysave moveto
	0 0 rlineto} for
	stroke
} for
-0.9 inch -0.75 inch moveto
(A) show
grestore


% Draw screen B:
gsave
0.9 centiinch setlinewidth
6.4 inch 3.5 inch translate
theta2 rot add rotate
0 p2y len		% draw rows of dots
{newpath
	/ysave exch centiinch len2 p2y div round p2y mul yshift2 sub centiinch sub def
	0 p2 len		% draw a row of dots
	{centiinch len2 p2 div round p2 mul xshift2 sub centiinch sub ysave moveto
	0 0 rlineto} for
	stroke
} for
-0.9 inch -0.65 inch moveto
(B) show
grestore


gsave
6.4 inch 3.5 inch translate
/Times-Roman findfont
12 scalefont setfont
-0.07 inch -1.2 inch moveto
((i)) show
grestore



gsave
1.9 inch 1 inch translate
0 inch 0 inch moveto
/Times-Bold findfont
12 scalefont setfont
(Figure 3.3) 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


grestore


showpage