oracular (6) klein.6x.gz

Provided by: xscreensaver-gl-extra_6.08+dfsg1-1ubuntu3_amd64 bug

NAME

       klein - Draws a 4d Klein bottle.

SYNOPSIS

       klein  [--display  host:display.screen]  [--install]  [--visual  visual] [--window] [--root] [--window-id
       number] [--delay usecs]  [--fps]  [--klein-bottle  bottle-name]  [-figure-8]  [-pinched-torus]  [-lawson]
       [--mode  display-mode]  [--wireframe]  [--surface]  [--transparent]  [--appearance  appearance] [--solid]
       [--bands] [--colors  color-scheme]  [--onesided]  [--twosided]  [--rainbow]  [--depth]  [--change-colors]
       [--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 pinched 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 when using static colors).   The  pinched  torus  Klein  bottle  also  does  not
       intersect itself in 4d (which can be seen in the depth colors mode when using static colors).  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 pinched
       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 one-sided, two-sided,
       rainbow, or depth.  In one-sided mode, the Klein bottle is drawn with the same color on both "sides."  In
       two-sided  mode  (using static colors), 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.  If changing colors are used in two-sided mode, changing complementary colors are used on the
       respective  "sides."   The  rainbow  color mode (using static colors) draws the Klein bottle with a color
       wheel of fully saturated rainbow colors.  If changing colors are used, the color  wheel's  colors  change
       dynamically.   The  rainbow  color mode gives a very nice effect when combined with the see-through bands
       mode or with the orientation markers drawn.  The depth color mode draws the Klein bottle with colors that
       are  chosen  according to the 4d "depth" of the points.  If static colors are used, this mode enables you
       to see that the figure-8 and pinched 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.

       --window-id number
               Draw on the specified 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 pinched-torus (Shortcut: --pinched-torus)
               Display the pinched 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 five 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 one-sided (Shortcut: --onesided)
               Display the Klein bottle with a single color.

       --colors two-sided (Shortcut: --twosided)
               Display the Klein bottle with two colors: one color one "side" and the complementary color on the
               "other side."  For static colors, the colors are red and green.

       --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 options determine whether the colors with which the Klein bottle is displayed are static or
       are changing dynamically.

       --change-colors
               Change the colors with which the Klein bottle is displayed dynamically.

       --no-change-colors
               Use static colors to display the Klein bottle (default).

       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.

       XSCREENSAVER_WINDOW
               The window ID to use with --root.

SEE ALSO

       X(1), xscreensaver(1)

       Copyright  ©  2005-2020  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>, 11-jan-2020.