Provided by: xscreensaver-gl-extra_5.15-2ubuntu1_i386 bug

NAME

       kleinbottle - Draws a 4d Klein bottle.

SYNOPSIS

       kleinbottle  [-display host:display.screen] [-install] [-visual visual]
       [-window] [-root] [-delay  usecs]  [-fps]  [-klein-bottle  bottle-name]
       [-figure-8]  [-lawson]  [-mode  display-mode]  [-wireframe]  [-surface]
       [-transparent]  [-appearance  appearance]  [-solid]  [-bands]  [-colors
       color-scheme]  [-twosided]  [-rainbow]  [-depth] [-view-mode view-mode]
       [-walk] [-turn] [-walk-turn] [-orientation-marks] [-projection-3d mode]
       [-perspective-3d]      [-orthographic-3d]     [-projection-4d     mode]
       [-perspective-4d]  [-orthographic-4d]  [-speed-wx   float]   [-speed-wy
       float] [-speed-wz float] [-speed-xy float] [-speed-xz float] [-speed-yz
       float] [-walk-direction float] [-walk-speed float]

DESCRIPTION

       The kleinbottle program shows two different Klein bottles  in  4d:  the
       figure-8  Klein bottle or the Lawson Klein bottle.  You can walk on the
       Klein bottle, see it turn in 4d, or walk on it while it  turns  in  4d.
       The  figure-8  Klein  bottle is well known in its 3d form.  The 4d form
       used in this program is an extension of the 3d form to 4d that does not
       intersect  itself  in  4d (which can be seen in the depth colors mode).
       The Lawson Klein bottle, on the other hand, does  intersect  itself  in
       4d.   Its  primary use is that it has a nice appearance for walking and
       for turning in 3d.  The Klein bottle is a non-orientable  surface.   To
       make   this   apparent,   the   two-sided   color  mode  can  be  used.
       Alternatively, orientation markers (curling arrows) can be drawn  as  a
       texture  map  on the surface of the Klein bottle.  While walking on the
       Klein bottle, you will notice  that  the  orientation  of  the  curling
       arrows  changes  (which  it  must  because  the  Klein  bottle  is non-
       orientable).  The program projects the 4d  Klein  bottle  to  3d  using
       either  a  perspective or an orthographic projection.  Which of the two
       alternatives looks more appealing depends on the viewing mode  and  the
       Klein  bottle.   For example, the Lawson Klein bottle looks nicest when
       projected perspectively.  The figure-8 Klein bottle, on the other hand,
       looks nicer while walking when projected orthographically from 4d.  The
       projected Klein bottle can then  be  projected  to  the  screen  either
       perspectively  or  orthographically.   When  using  the  walking modes,
       perspective projection to the screen should be used.  There  are  three
       display  modes  for  the  Klein  bottle:  mesh  (wireframe),  solid, or
       transparent.  Furthermore, the appearance of the Klein bottle can be as
       a  solid  object or as a set of see-through bands.  Finally, the colors
       with with the Klein bottle is drawn can be set to  two-sided,  rainbow,
       or depth.  In the first case, the Klein bottle is drawn with red on one
       "side" and green on the "other side".  Of course, the Klein bottle only
       has one side, so the color jumps from red to green along a curve on the
       surface of the Klein bottle.  This mode enables you  to  see  that  the
       Klein bottle is non-orientable.  The second mode draws the Klein bottle
       with fully saturated rainbow colors.  This gives  a  very  nice  effect
       when  combined  with the see-through bands mode or with the orientation
       markers drawn.  The third mode draws the Klein bottle with colors  that
       are  chosen  according  to  the  4d  "depth"  of the points.  This mode
       enables you to see that the figure-8 Klein bottle  does  not  intersect
       itself in 4d, while the Lawson Klein bottle does intersect itself.  The
       rotation speed for each of the six planes around which the Klein bottle
       rotates  can  be chosen.  For the walk-and-turn more, only the rotation
       speeds around the true 4d planes are used (the xy, xz, and yz  planes).
       Furthermore,  in the walking modes the walking direction in the 2d base
       square of the Klein bottle and the walking speed can be  chosen.   This
       program  is  somewhat  inspired  by  Thomas Banchoff's book "Beyond the
       Third Dimension: Geometry, Computer Graphics, and  Higher  Dimensions",
       Scientific American Library, 1990.

OPTIONS

       kleinbottle accepts the following options:

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

       -root   Draw on the root window.

       -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.

       -delay microseconds
               How  much  of a delay should be introduced between steps of the
               animation.  Default 10000, or 1/100th second.

       -fps    Display the current frame rate, CPU load, and polygon count.

       The following three options are  mutually  exclusive.   They  determine
       which Klein bottle is displayed.

       -klein-bottle random
               Display a random Klein bottle (default).

       -klein-bottle figure-8 (Shortcut: -figure-8)
               Display the figure-8 Klein bottle.

       -klein-bottle lawson (Shortcut: -lawson)
               Display the Lawson Klein bottle.

       The  following four options are mutually exclusive.  They determine how
       the Klein bottle is displayed.

       -mode random
               Display the Klein bottle in a random display mode (default).

       -mode wireframe (Shortcut: -wireframe)
               Display the Klein bottle as a wireframe mesh.

       -mode surface (Shortcut: -surface)
               Display the Klein bottle as a solid surface.

       -mode transparent (Shortcut: -transparent)
               Display the Klein bottle as a transparent surface.

       The following three options are mutually exclusive.  They determine the
       appearance of the Klein bottle.

       -appearance random
               Display the Klein bottle with a random appearance (default).

       -appearance solid (Shortcut: -solid)
               Display the Klein bottle as a solid object.

       -appearance bands (Shortcut: -bands)
               Display the Klein bottle as see-through bands.

       The  following four options are mutually exclusive.  They determine how
       to color the Klein bottle.

       -colors random
               Display the Klein bottle with a random color scheme (default).

       -colors twosided (Shortcut: -twosided)
               Display the Klein bottle with two colors: red on one "side" and
               green on the "other side".

       -colors rainbow (Shortcut: -rainbow)
               Display  the  Klein bottle with fully saturated rainbow colors.
               If the Klein bottle is displayed  as  see-through  bands,  each
               band will be displayed with a different color.

       -colors depth (Shortcut: -depth)
               Display the Klein bottle with colors chosen depending on the 4d
               "depth" of the points.

       The following four options are mutually exclusive.  They determine  how
       to view the Klein bottle.

       -view-mode random
               View the Klein bottle in a random view mode (default).

       -view-mode walk (Shortcut: -walk)
               View the Klein bottle as if walking on its surface.

       -view-mode turn (Shortcut: -turn)
               View the Klein bottle while it turns in 4d.

       -view-mode walk-turn (Shortcut: -walk-turn)
               View   the   Klein   bottle  as  if  walking  on  its  surface.
               Additionally, the Klein bottle turns around the true 4d  planes
               (the xy, xz, and yz planes).

       The  following options determine whether orientation marks are shown on
       the Klein bottle.

       -orientation-marks
               Display orientation marks on the Klein bottle.

       -no-orientation-marks
               Don't display orientation marks on the Klein bottle (default).

       The following three options are mutually exclusive.  They determine how
       the Klein bottle is projected from 3d to 2d (i.e., to the screen).

       -projection-3d random
               Project  the  Klein  bottle  from  3d  to  2d  using  a  random
               projection mode (default).

       -projection-3d perspective (Shortcut: -perspective-3d)
               Project the Klein bottle from 3d  to  2d  using  a  perspective
               projection.

       -projection-3d orthographic (Shortcut: -orthographic-3d)
               Project  the  Klein  bottle from 3d to 2d using an orthographic
               projection.

       The following three options are mutually exclusive.  They determine how
       the Klein bottle is projected from 4d to 3d.

       -projection-4d random
               Project  the  Klein  bottle  from  4d  to  3d  using  a  random
               projection mode (default).

       -projection-4d perspective (Shortcut: -perspective-4d)
               Project the Klein bottle from 4d  to  3d  using  a  perspective
               projection.

       -projection-4d orthographic (Shortcut: -orthographic-4d)
               Project  the  Klein  bottle from 4d to 3d using an orthographic
               projection.

       The following six options determine the rotation  speed  of  the  Klein
       bottle  around  the  six  possible  hyperplanes.  The rotation speed is
       measured in degrees per frame.  The speeds should be set to  relatively
       small values, e.g., less than 4 in magnitude.  In walk mode, all speeds
       are ignored.  In walk-and-turn mode, the 3d rotation speeds are ignored
       (i.e.,  the  wx,  wy,  and  wz speeds).  In walk-and-turn mode, smaller
       speeds  must  be  used  than  in  the  turn  mode  to  achieve  a  nice
       visualization.   Therefore,  in  walk-and-turn mode the speeds you have
       selected are divided by 5 internally.

       -speed-wx float
               Rotation speed around the wx plane (default: 1.1).

       -speed-wy float
               Rotation speed around the wy plane (default: 1.3).

       -speed-wz float
               Rotation speed around the wz plane (default: 1.5).

       -speed-xy float
               Rotation speed around the xy plane (default: 1.7).

       -speed-xz float
               Rotation speed around the xz plane (default: 1.9).

       -speed-yz float
               Rotation speed around the yz plane (default: 2.1).

       The following two options determine the walking speed and direction.

       -walk-direction float
               The walking direction is measured as an angle in degrees in the
               2d  square  that  forms the coordinate system of the surface of
               the Klein bottle (default: 7.0).

       -walk-speed float
               The walking speed is  measured  in  percent  of  some  sensible
               maximum speed (default: 20.0).

INTERACTION

       If  you  run  this program in standalone mode in its turn mode, you can
       rotate the Klein bottle by dragging the mouse while pressing  the  left
       mouse  button.   This  rotates the Klein bottle in 3D, i.e., around the
       wx, wy, and wz planes.  If you press the shift key while  dragging  the
       mouse  with  the left button pressed the Klein bottle is rotated in 4D,
       i.e., around the xy, xz, and yz planes.  To examine the Klein bottle at
       your  leisure, it is best to set all speeds to 0.  Otherwise, the Klein
       bottle will rotate while the left mouse button is  not  pressed.   This
       kind of interaction is not available in the two walk modes.

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)

COPYRIGHT

       Copyright (C) 2005-2009 by Carsten Steger.  Permission  to  use,  copy,
       modify,  distribute,  and  sell this software and its documentation for
       any purpose is hereby granted without  fee,  provided  that  the  above
       copyright  notice  appear  in  all  copies and that both that copyright
       notice and this permission notice appear in  supporting  documentation.
       No  representations are made about the suitability of this software for
       any purpose.  It  is  provided  "as  is"  without  express  or  implied
       warranty.

AUTHOR

       Carsten Steger <carsten@mirsanmir.org>, 03-aug-2009.