bionic (6) klein.6x.gz

Provided by: xscreensaver-gl-extra_5.36-1ubuntu1_amd64 bug

NAME

       klein - Draws a 4d Klein bottle.

SYNOPSIS

       klein  [-display host:display.screen] [-install] [-visual visual] [-window] [-root] [-delay usecs] [-fps]
       [-klein-bottle bottle-name] [-figure-8] [-squeezed-torus]  [-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  klein  program  shows  three  different Klein bottles in 4d: the figure-8 Klein bottle, the squeezed
       torus 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 squeezed torus Klein bottle also 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.  For the squeezed torus Klein
       bottle, both projection modes give equally acceptable projections.  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 and squeezed torus Klein
       bottles do not intersect themselves 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 mode, 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

       klein 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 squeezed-torus (Shortcut: -squeezed-torus)
               Display the squeezed torus 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 © 2005-2014 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-oct-2014.