ICO(1)

NAME
ico - animate an icosahedron or other polyhedron

SYNOPSIS
ico [-display display] [-geometry geometry] [-r] [-d pattern] [-i] [-dbl | -softdbl] [-faces] [-noedges] [-size WxH] [-delta +X+Y] [-copy] [-lw n] [-sleep n] [-obj object] [-stellate number] [-dual] [-objhelp] [[-colors color-list] | [-p#]]

DESCRIPTION
Ico displays a wire-frame rotating polyhedron, with hidden lines removed, or a solid-fill polyhedron with hidden faces removed. There are a number of different polyhedra available.

OPTIONS

-r  Display on the root window instead of creating a new window.

-d pattern
    Specify a bit pattern for drawing dashed lines for wire frames.

-i  Use inverted colors for wire frames.

-dbl
    Use the double buffering extension if it exists. If it does not then double buffering will be emulated as with -softdbl. This works for either wire frame or solid fill drawings. For solid fill drawings, using this switch results in substantially smoother movement.

-softdbl
    Use software double buffering on the display. This works for either wire frame or solid fill drawings. For solid fill drawings, using this switch results in substantially smoother movement. For this to work a display with a modifiable color map is required. The number of colors which may be used is restricted by the size of the color map (the square root of the number of entries minus one - only three colors on a display with 16 color map entries). A new color map will be allocated if required. Ico expects the window manager to manage the color maps; normally when the ico -softdbl window is displayed correctly other windows on the display will be displayed in incorrect colors (and will flicker horribly).

-faces
    Draw filled faces instead of wire frames.

-noedges
    Don't draw the wire frames. Typically used only when -faces is used.

-size WxH
    Specifies the size of the object to be drawn in pixels.

-delta +X+Y
    Specifies the distance in X and Y (in pixels) which the object is to move for each step.

-copy
    When using the double buffering extension the object is not erased before it is drawn in its next position.

-lw number
    Specifies the line width to be used for drawing edges.

-sleep n
    Sleep n seconds between each move of the object (n may be a real number, not just an integral value).

-obj object
    Specify what object to draw. If no object is specified, an icosahedron is drawn.

-objhelp
    Print out a list of the available objects, along with information about each object.

-stellate number
    Stellate the given object by putting a point on each face. The number is the amount by which the centre of each face is stretched towards the bounding sphere of the object - if the number is 0 the centre is not stretched out at all. Try numbers in the range 1.0 to 2.0. The resultant object has triangular faces each with one vertex at the (new, stretched) face centre and the other two at the ends of one of the old edges. The option can be applied more than once, however the resulting objects rapidly become too complicated. The option should be used with -faces; if faces are not drawn the hidden line removal of the edges will be incomplete. The algorithm used is to move the centre of the face outwards by the area of the face scaled by the given number. Negative numbers will move the centre inwards; if the resultant object has self intersecting faces it will not be drawn correctly.

-dual
    Produce the dual of the object. The -objhelp option can be used to find out what the dual is. The algorithm used is to convert each vertex into a face whose vertices are the centres of the faces which share that vertex. Because of the way the plane object is represented (two planes back-to-back) the dual is a degenerate object which cannot be handled. If the plane is stellated first with -stellate 0.0 it can be handled (the stellated object is a degenerate octahedron, the dual is a degenerate cube). The options -obj, -stellate, and -dual are applied in the order specified on the command line - thus the latter two options must appear after the object to which they are being applied. Options can be combined in any way up to the (relatively restricted) limits of the program, however the resulting objects are not always well behaved. In particular the dualling algorithm can produce objects with non-planar faces, which will then be impossible to display correctly - the dual of a stellated non-regualar polyhedron will typically have non-planar faces.

-colors color color ...
    Specify what colors should be used to draw the filled faces of the object. If less colors than faces are given, the colors are reused. The number of colors that are possible depends on the number of planes which the display supports.

-p# Specifies that a number of primary colors should be used to draw the faces of the object. The first three colors used are red, green and blue, then the secondary colors are used (yellow, cyan, magenta), then white, then various other colors. The actual number of distinct colors that are possible depends on the color map type which the display supports.

SEE ALSO
X(1)

COPYRIGHT
Copyright 1988, Massachusetts Institute of Technology.
See X(1) for a full statement of rights and permissions.