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

  
 
  

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

NAME
     projectiveplane - Draws a 4d embedding of the real projective plane.

SYNOPSIS
     projectiveplane  [--display  host:display.screen] [--install] [--visual vi-
     sual] [--window] [--root]	[--window-id  number]  [--delay  usecs]  [--fps]
     [--mode  display-mode] [--wireframe] [--surface] [--transparent] [--appear-
     ance appearance] [--solid] [--distance-bands] [--direction-bands] [--colors
     color-scheme] [--onesided-colors]	[--twosided-colors]  [--distance-colors]
     [--direction-colors]  [--change-colors] [--depth-colors] [--view-mode view-
     mode]  [--walk]  [--turn]	[--walk-turn]  [--orientation-marks]  [--projec-
     tion-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 projectiveplane program shows a 4d embedding  of  the	real  projective
     plane.  You can walk on the projective plane, see it turn in 4d, or walk on
     it  while it turns in 4d.	The fact that the surface is an embedding of the
     real projective plane in 4d can be seen in the  depth  colors  mode  (using
     static  colors): set all rotation speeds to 0 and the projection mode to 4d
     orthographic projection.  In its default orientation, the embedding of  the
     real  projective  plane  will  then project to the Roman surface, which has
     three lines of self-intersection.	However, at the three lines of	self-in-
     tersection  the  parts of the surface that intersect have different colors,
     i.e., different 4d depths.

     The real projective plane is a non-orientable surface.  To make this appar-
     ent, 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 projective plane.  While walking on the projective plane, you will  no-
     tice  that the orientation of the curling arrows changes (which it must be-
     cause the projective plane is non-orientable).

     The real projective plane is a model for  the  projective	geometry  in  2d
     space.   One point can be singled out as the origin.  A line can be singled
     out as the line at infinity, i.e., a line that lies at an infinite distance
     to the origin.  The line at infinity, like  all  lines  in  the  projective
     plane,  is topologically a circle.  Points on the line at infinity are also
     used to model directions in projective geometry.  The origin can be visual-
     ized in different manners.  When using distance colors  (and  using  static
     colors),  the origin is the point that is displayed as fully saturated red,
     which is easier to see as the center of the reddish area on the  projective
     plane.   Alternatively, when using distance bands, the origin is the center
     of the only band that projects to a disk.	When using direction bands,  the
     origin  is  the  point  where all direction bands collapse to a point.  Fi-
     nally, when orientation markers are being displayed,  the	origin	the  the
     point where all orientation markers are compressed to a point.  The line at
     infinity  can  also  be  visualized in different ways.  When using distance
     colors (and using static colors), the line at infinity is the line that  is
     displayed	as  fully saturated magenta.  When two-sided (and static) colors
     are used, the line at infinity lies at the points where the red  and  green
     "sides"  of the projective plane meet (of course, the real projective plane
     only has one side, so this is a design choice of the  visualization).   Al-
     ternatively,  when orientation markers are being displayed, the line at in-
     finity is the place where the orientation markers change their orientation.

     Note that when the projective plane is displayed with bands,  the	orienta-
     tion  markers  are  placed in the middle of the bands.  For distance bands,
     the bands are chosen in such a way that the band at the origin is only half
     as wide as the remaining bands, which results in a disk being displayed  at
     the origin that has the same diameter as the remaining bands.  This choice,
     however,  also  implies  that  the  band at infinity is half as wide as the
     other bands.  Since the projective plane is attached to itself (in  a  com-
     plicated fashion) at the line at infinity, effectively the band at infinity
     is  again	as  wide as the remaining bands.  However, since the orientation
     markers are displayed in the middle of the bands, this means that only  one
     half  of the orientation markers will be displayed twice at the line at in-
     finity if distance bands are used.  If direction bands are used or  if  the
     projective  plane	is displayed as a solid surface, the orientation markers
     are displayed fully at the respective sides of the line at infinity.

     The program projects the 4d projective plane to 3d using either a	perspec-
     tive  or  an  orthographic projection.  Which of the two alternatives looks
     more appealing is up to you.  However, two famous surfaces are obtained  if
     orthographic  4d  projection  is used: The Roman surface and the cross cap.
     If the projective plane is rotated in 4d, the result of the projection  for
     certain  rotations  is  a	Roman  surface and for certain rotations it is a
     cross cap.  The easiest way to see this is to set all rotation speeds to  0
     and  the  rotation  speed	around the yz plane to a value different from 0.
     However, for any 4d rotation speeds, the projections will	generally  cycle
     between  the  Roman surface and the cross cap.  The difference is where the
     origin and the line at infinity will lie with respect to the self-intersec-
     tions in the projections to 3d.

     The projected projective plane can then be projected to the  screen  either
     perspectively  or orthographically.  When using the walking modes, perspec-
     tive projection to the screen will be used.

     There are three display modes for the projective plane:  mesh  (wireframe),
     solid, or transparent.  Furthermore, the appearance of the projective plane
     can  be  as a solid object or as a set of see-through bands.  The bands can
     be distance bands, i.e., bands that lie at increasing  distances  from  the
     origin,  or direction bands, i.e., bands that lie at increasing angles with
     respect to the origin.

     When the projective plane is displayed with direction bands,  you	will  be
     able  to see that each direction band (modulo the "pinching" at the origin)
     is a Moebius strip, which also shows that the projective plane is	non-ori-
     entable.

     Finally,  the  colors with with the projective plane is drawn can be set to
     one-sided, two-sided, distance, direction, or depth.   In	one-sided  mode,
     the projective plane is drawn with the same color on both "sides."  In two-
     sided mode (using static colors), the projective plane is drawn with red on
     one  "side"  and green on the "other side." As described above, the projec-
     tive plane only has one side, so the color jumps from red	to  green  along
     the  line	at  infinity.	This mode enables you to see that the projective
     plane is non-orientable.  If changing colors are used  in	two-sided  mode,
     changing  complementary colors are used on the respective "sides."  In dis-
     tance mode, the projective plane is displayed with fully  saturated  colors
     that  depend  on  the distance of the points on the projective plane to the
     origin.  If static colors are used, the origin is displayed in  red,  while
     the  line	at infinity is displayed in magenta.  If the projective plane is
     displayed as distance bands, each band will be displayed with  a  different
     color.   In  direction  mode,  the projective plane is displayed with fully
     saturated colors that depend on the angle of the points on  the  projective
     plane  with  respect  to  the origin.  Angles in opposite directions to the
     origin (e.g., 15 and 205 degrees) are displayed in  the  same  color  since
     they  are projectively equivalent.  If the projective plane is displayed as
     direction bands, each band will be displayed with a different  color.   Fi-
     nally,  in  depth mode the projective plane is displayed with colors chosen
     depending on the 4d "depth" (i.e., the w coordinate) of the points  on  the
     projective  plane	at  its  default orientation in 4d.  As discussed above,
     this mode enables you to see that the projective plane does  not  intersect
     itself in 4d.

     The  rotation  speed for each of the six planes around which the projective
     plane 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  projective plane and the walking speed can be chosen.  The
     walking direction is measured as an angle in degrees in the 2d square  that
     forms  the  coordinate  system  of  the surface of the projective plane.  A
     value of 0 or 180 means that the walk is along a circle at a randomly  cho-
     sen  distance from the origin (parallel to a distance band).  A value of 90
     or 270 means that the walk is directly from the origin to the line  at  in-
     finity  and  back (analogous to a direction band).  Any other value results
     in a curved path from the origin to the line at infinity and back.

     This program is somewhat inspired by Thomas  Banchoff's  book  "Beyond  the
     Third  Dimension: Geometry, Computer Graphics, and Higher Dimensions", Sci-
     entific American Library, 1990.

OPTIONS
     projectiveplane 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  ani-
	     mation.  Default 10000, or 1/100th second.

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

     The  following four options are mutually exclusive.  They determine how the
     projective plane is displayed.

     --mode random
	     Display the projective plane in a random display mode (default).

     --mode wireframe (Shortcut: --wireframe)
	     Display the projective plane as a wireframe mesh.

     --mode surface (Shortcut: --surface)
	     Display the projective plane as a solid surface.

     --mode transparent (Shortcut: --transparent)
	     Display the projective plane as a transparent surface.

     The following three options are mutually exclusive.  They determine the ap-
     pearance of the projective plane.

     --appearance random
	     Display the projective plane with a random appearance (default).

     --appearance solid (Shortcut: --solid)
	     Display the projective plane as a solid object.

     --appearance distance-bands (Shortcut: --distance-bands)
	     Display the projective plane as see-through bands that lie  at  in-
	     creasing distances from the origin.

     --appearance direction-bands (Shortcut: --direction-bands)
	     Display  the  projective plane as see-through bands that lie at in-
	     creasing angles with respect to the origin.

     The following four options are mutually exclusive.  They determine  how  to
     color the projective plane.

     --colors random
	     Display the projective plane with a random color scheme (default).

     --colors onesided (Shortcut: --onesided-colors)
	     Display the projective plane with a single color.

     --colors twosided (Shortcut: --twosided-colors)
	     Display  the projective plane with two colors: one color one "side"
	     and the complementary color on the "other side."  For  static  col-
	     ors,  the colors are red and green.  Note that the line at infinity
	     lies at the points where the red and green "sides" of  the  projec-
	     tive  plane  meet,  i.e.,	where  the orientation of the projective
	     plane reverses.

     --colors distance (Shortcut: --distance-colors)
	     Display the projective plane with fully saturated colors  that  de-
	     pend  on  the distance of the points on the projective plane to the
	     origin.  For static colors, the origin is displayed in  red,  while
	     the  line	at  infinity is displayed in magenta.  If the projective
	     plane is displayed as distance bands, each band will  be  displayed
	     with a different color.

     --colors direction (Shortcut: --direction-colors)
	     Display  the  projective plane with fully saturated colors that de-
	     pend on the angle of the points on the projective	plane  with  re-
	     spect  to	the origin.  Angles in opposite directions to the origin
	     (e.g., 15 and 205 degrees) are displayed in the  same  color  since
	     they  are projectively equivalent.  If the projective plane is dis-
	     played as direction bands, each band will be displayed with a  dif-
	     ferent color.

     --colors depth (Shortcut: --depth)
	     Display the projective plane with colors chosen depending on the 4d
	     "depth"  (i.e.,  the  w coordinate) of the points on the projective
	     plane at its default orientation in 4d.

     The following options determine whether the colors with which  the  projec-
     tive plane is displayed are static or are changing dynamically.

     --change-colors
	     Change  the colors with which the projective plane is displayed dy-
	     namically.

     --no-change-colors
	     Use static colors to display the projective plane (default).

     The following four options are mutually exclusive.  They determine  how  to
     view the projective plane.

     --view-mode random
	     View the projective plane in a random view mode (default).

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

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

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

     The following options determine whether orientation marks are shown on  the
     projective plane.

     --orientation-marks
	     Display orientation marks on the projective plane.

     --no-orientation-marks
	     Don't display orientation marks on the projective plane (default).

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

     --projection-3d random
	     Project  the  projective plane from 3d to 2d using a random projec-
	     tion mode (default).

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

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

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

     --projection-4d random
	     Project  the  projective plane from 4d to 3d using a random projec-
	     tion mode (default).

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

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

     The  following  six  options determine the rotation speed of the projective
     plane 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  pro-
	     jective  plane (default: 83.0).  A value of 0 or 180 means that the
	     walk is along a circle at a randomly chosen distance from the  ori-
	     gin (parallel to a distance band).  A value of 90 or 270 means that
	     the  walk	is  directly from the origin to the line at infinity and
	     back (analogous to a direction band).  Any other value results in a
	     curved path from the origin to the line at infinity and back.

     --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  projective  plane  by dragging the mouse while pressing the left mouse
     button.  This rotates the projective plane 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 projective plane is rotated in 4D, i.e., around
     the xy, xz, and yz  planes.   To  examine	the  projective  plane	at  your
     leisure,  it  is  best  to  set all speeds to 0.  Otherwise, the projective
     plane 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  re-
	     sources stored in the RESOURCE_MANAGER property.

     XSCREENSAVER_WINDOW
	     The window ID to use with --root.

SEE ALSO
     X(1), xscreensaver(1)

COPYRIGHT
     Copyright	(C)  2013-2020 by Carsten Steger.  Permission to use, copy, mod-
     ify, distribute, and sell this software and its documentation for any  pur-
     pose  is  hereby granted without fee, provided that the above copyright no-
     tice appear in all copies and that both that copyright notice and this per-
     mission notice appear in supporting documentation.  No representations  are
     made  about  the  suitability of this software for any purpose.  It is pro-
     vided "as is" without express or implied warranty.

AUTHOR
     Carsten Steger <carsten@mirsanmir.org>, 06-jan-2020.

X Version 11		       6.15 (30-Mar-2026)	      projectiveplane(6)

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

home | help