Postscript source: tile.ps

Put the text from "%!PS-Adobe" through "showpage" in a file "tile.ps", then view it with a postscript viewer (ghostview, ghostscript), or print it on a postscript printer to get an image much higher in quality than the .gif file created from it.

```%!PS-Adobe
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                                      %
%                                                                      %
%  Program to draw tiling of hyperbolic plane by ideal triangles.      %
%  These have area pi in the Poincare metric (constant curvature -1).  %
%                                                                      %
%                    ---  J. Carlson, November 1, 1991                 %
%                                                                      %
%                                                                      %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% DEFINITIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% set inch scale and line width

/inch {72 mul} def % define one inch
0.1 setlinewidth

%  define parameters of figure:

/R 2.5 inch def                   % the scale: radius of limit circle
/a 60 def                         % the central half-angle
/b 90 a sub 2 mul def             % the angle subtended by the arc
/c a 2 mul def                    % the angle of rotation
/r R a sin a cos div mul def      % initial radius
/n 3 def                          % the number of arcs
/N 7 def                          % number of layers

% define basic arc (rotate after drawing it to get ready for next one):

/ARC {
r R r 180 180 b add arc
stroke
c rotate
} def

% procedure to update parameters for successive layers of tiling:

/update {
/a a 2 div def                  % update a: a <== a/2
/b 90 a sub 2 mul def           % update b: b <== (90 - a)/2
/c a 2 mul def                  % update c: c <== 2a
/r R a sin a cos div mul def    % update r: r <== R tan a
/n n 2 mul def                  % update n: n <== 2n
} def

%%%%%%%%%%%%%%%%%%%%% NOW DRAW THE FIGURE %%%%%%%%%%%%%%%%%%%%%

gsave % save graphics state

4.25 inch 6.0 inch translate % put origin near center of page

% draw unit circle:
newpath
0 0 R 0 360 arc stroke

% draw first layer of arcs:
1 1 n {ARC} for

% finally, draw N-1 more layers:

1 1 N 1 sub {
update
1 1 n {ARC} for
} for

grestore % restore graphics state

/Times-BoldItalic findfont
36 scalefont
setfont
1.5 inch 1.5 inch moveto

(Tiling of Hyperbolic Plane) show

showpage

```

Home | Seminars | Links | G | BB | Math Dept | AMS | MAA | arXiv | Math Sci