Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
klein(6)		      XScreenSaver manual		      klein(6)

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]	[--ap-
       pearance	  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 fig-
       ure-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 bot-
       tle, 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 mark-
       ers (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  be-
       cause the Klein bottle is non-orientable).

       The  program projects the 4d Klein bottle to 3d using either a perspec-
       tive 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  per-
       spectively.   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  pro-
       jections.

       The  projected  Klein bottle can	then be	projected to the screen	either
       perspectively or	orthographically.  When	using the walking modes,  per-
       spective	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 bot-
       tle 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 in-
       tersect 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 ro-
       tation 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 dy-
	       namically.

       --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.  Addition-
	       ally, 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 projec-
	       tion mode (default).

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

       --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 projec-
	       tion mode (default).

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

       --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 mea-
       sured 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  visualiza-
       tion.   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 maxi-
	       mum 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
       Copyright  (C)  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  no-
       tice 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.

X Version 11		      6.09 (07-Jun-2024)		      klein(6)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=klein&sektion=6&manpath=FreeBSD+Ports+14.3.quarterly>

home | help