NAME¶
polytopes - Draws one of the six regular 4d polytopes rotating in 4d.
SYNOPSIS¶
polytopes [-display
host:display.screen] [-install] [-visual
visual] [-window] [-root] [-delay
usecs] [-fps] [-5-cell]
[-8-cell] [-16-cell] [-24-cell] [-120-cell] [-600-cell] [-wireframe]
[-surface] [-transparent] [-single-color] [-depth-colors] [-perspective-3d]
[-orthographic-3d] [-perspective-4d] [-orthographic-4d] [-speed-wx
float] [-speed-wy
float] [-speed-wz
float] [-speed-xy
float] [-speed-xz
float] [-speed-yz
float]
DESCRIPTION¶
The
polytopes program shows one of the six regular 4d polytopes (5-cell,
8-cell, 16-cell, 24-cell, 120-cell, or 600-cell) rotating in 4d. The program
projects the 4d polytope to 3d using either a perspective or an orthographic
projection. The projected 3d polytope can then be projected to the screen
either perspectively or orthographically. There are three display modes for
the polytope: mesh (wireframe), solid, or transparent. Furthermore, the colors
with which the polytope is drawn can be set to either single color or to a
coloring according to the 4d "depth" (the w coordinate) of the
polytope in its unrotated position. In the first case, the polytope is drawn
in red. This coloring combined with transparency gives a nice visual effect of
the structure of the polytope. The second mode draws the polytope with a fully
saturated color wheel in which the edges or faces are colored accoring to
their average 4d "depth". This mode is best combined with the
wireframe mode, where it allows you to see how different parts of the polytope
are moved to the "inside" of the projected polytope in 3d. Of
course, in 4d the cells, faces, and edges of the polytope all have the same
distance from the center of the polytope. Only the projection creates the
appearance that some of the cells lie "inside" the figure in 3d.
OPTIONS¶
polytopes 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 25000, or 1/40th second.
The following six options are mutually exclusive. They determine which polytope
is displayed.
- -5-cell
- Display the 5-cell. The 5-cell is the 4d analogon of a regular tetrahedron
in 3d. It has 5 regular tetrahedra as its cells, 10 equilateral triangles
as faces, 10 edges, and 5 vertices.
- -8-cell
- Display the 8-cell (a.k.a. hypercube or tessaract). The 8-cell is the 4d
analogon of a cube in 3d. It has 8 cubes as its cells, 24 squares as
faces, 32 edges, and 16 vertices.
- -16-cell
- Display the 16-cell. The 16-cell is the 4d analogon of an octahedron in
3d. It has 16 regular tetrahedra as its cells, 32 equilateral triangles as
faces, 24 edges, and 8 vertices.
- -24-cell
- Display the 24-cell. The 24-cell has no 3d analogon. It has 24 regular
octahedra as its cells, 96 equilateral triangles as faces, 96 edges, and
24 vertices.
- -120-cell
- Display the 120-cell. The 120-cell has no 3d analogon. It has 120 regular
dodecahedra as its cells, 720 regular pentagons as faces, 1200 edges, and
600 vertices.
- -600-cell
- Display the 600-cell. The 600-cell has no 3d analogon. It has 600 regular
tetrahedra as its cells, 1200 equilateral triangles as faces, 720 edges,
and 120 vertices.
The following three options are mutually exclusive. They determine how the
polytope is displayed.
- -wireframe
- Display the polytope as a wireframe mesh.
- -surface
- Display the polytope as a solid object.
- -transparent
- Display the polytope as a transparent object (default).
The following two options are mutually exclusive. They determine how to color
the polytope.
- -single-color
- Display the polytope in red.
- -depth-colors
- Display the polytope with a fully saturated color wheel in which the edges
or faces are colored accoring to their average 4d "depth", i.e.,
the w coordinate of the polytope in its unrotated position (default).
The following two options are mutually exclusive. They determine how the
polytope is projected from 3d to 2d (i.e., to the screen).
- -perspective-3d
- Project the polytope from 3d to 2d using a perspective projection
(default).
- -orthographic-3d
- Project the polytope from 3d to 2d using an orthographic projection.
The following two options are mutually exclusive. They determine how the
polytope is projected from 4d to 3d.
- -perspective-4d
- Project the polytope from 4d to 3d using a perspective projection
(default).
- -orthographic-4d
- Project the polytope from 4d to 3d using an orthographic projection.
The following six options determine the rotation speed of the polytope 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.
- -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).
INTERACTION¶
If you run this program in standalone mode you can rotate the polytope by
dragging the mouse while pressing the left mouse button. This rotates the
polytope 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 polytope is
rotated in 4D, i.e., around the xy, xz, and yz planes. To examine the polytope
at your leisure, it is best to set all speeds to 0. Otherwise, the polytope
will rotate while the left mouse button is not pressed.
-fps Display
the current frame rate, CPU load, and polygon count.
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 © 2003-2005 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>, 28-sep-2005.