Provided by: xscreensaver-gl-extra_5.15-3+deb7u1ubuntu0.1_amd64 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 © 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.