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

%%%%%%%%%%%%%%%%%%%%% FINALLY, ADD LEGEND %%%%%%%%%%%%%%%%%%%%%

  /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