penrose



XScreenSaver(1)                                                XScreenSaver(1)




NAME

       penrose - draws quasiperiodic tilings


SYNOPSIS

       penrose [-display host:display.screen] [-foreground color] [-background
       color] [-window] [-root] [-mono] [-install] [-visual visual]  [-ncolors
       integer]  [-delay  microseconds]  [-redoDelay  seconds] [-size integer]
       [-ammann] [-no-ammann]



DESCRIPTION

       The penrose program draws quasiperiodic tilings.

       See Onoda, Steinhardt, DiVincenzo and Socolar in Phys. Rev.  Lett.  60,
       #25, 1988 or Strandburg in Computers in Physics, Sep/Oct 1991.

       This  implementation  uses the simpler version of the growth algorithm,
       i.e., if there are no forced vertices, a randomly chosen tile is  added
       to  a  randomly  chosen  vertex  (no  preference  for  those 108 degree
       angles).

       There are two essential differences to the algorithm presented  in  the
       literature:  First,  we  do  not allow the tiling to enclose an untiled
       area.  Whenever this is in danger of happening, we just do not add  the
       tile,  hoping  for  a better random choice the next time.  Second, when
       choosing a vertex randomly, we will take  one  that  lies  withing  the
       viewport if available.  If this seems to cause enclosures in the forced
       rule case, we will allow invisible vertices to be chosen.

       Tiling is restarted whenever one of the following happens: there are no
       incomplete  vertices  within  the viewport or the tiling has extended a
       window’s length beyond the edge of the window  horizontally  or  verti-
       cally  or forced rule choice has failed 100 times due to areas about to
       become enclosed.

       Although quasiperiodic tilings are produced, the tiles  themselves  are
       not  penrose  tiles  (darts  and  kites). In contrast to penrose tiles,
       these tiles can be arranged to form a periodic tiling.



OPTIONS

       penrose accepts the following options:

       -window Draw on a newly-created window.  This is the default.

       -root   Draw on the root window.

       -mono   If on a color display, pretend we’re on a monochrome display.

       -install
               Install a private colormap for the window.

       -visual visual
               Specify which visual to use.  Legal values are the  name  of  a
               visual  class,  or the id number (decimal or hex) of a specific
               visual.

       -ncolors integer
               How many colors should be used (if possible).  Default 64.  The
               colors are chosen randomly.

       -size integer
               How big the tiles should be.  Default 40 pixels.


       -delay milliseconds
               How long (in 1/1,000,000’ths of a second) to wait between draw-
               ing each tile.  Default 10,000 or .01 seconds.


       -redoDelay seconds
               How long to wait between  starting  a  completely  new  tiling.
               Default 3 seconds.


       -ammann

       -no-ammann
               Whether Ammann lines should be added.



ENVIRONMENT

       DISPLAY to get the default host and display number.

       XENVIRONMENT
               to  get  the  name of a resource file that overrides the global
               resources stored in the RESOURCE_MANAGER property.


SEE ALSO

       X(1), xscreensaver(1), xlock(1)


COPYRIGHT

       Copyright © 1996 by Timo Korvola.

       Permission to use, copy, modify, and distribute this software  and  its
       documentation  for  any purpose and without fee is hereby granted, pro-
       vided that the above copyright notice appear in  all  copies  and  that
       both  that  copyright  notice and this permission notice appear in sup-
       porting documentation.


AUTHOR

       Timo Korvola <tkorvola@dopey.hut.fi>, 1996.

       Ability to run standalone or with xscreensaver added by Jamie  Zawinski
       <jwz@jwz.org>, 10-May-97.



X Version 11                       10-May-97                   XScreenSaver(1)

Man(1) output converted with man2html