File: GargoyleSymmetry.tioga Last edited by Bier before 22-May-85. Symmetry Tools For Gargoyle Much of the time spent designing a gargoyle scene is spent positioning various entities. Control points are positioned to build up trajectories. Trajectories are positioned to build outlines. Outlines are positioned to make a scene. If the trajectory, outline, or scene possesses some amount of symmetry (or iteration) a tool which enforces simple relationships among objects can capture intent and cut down on design time. One of the design ideas for gargoyle is that every object can act as a tool (or as several tools). In particular, an object with 6-fold rotational symmetry (e.g. a hexagon) can be used to arrange other patterns with 6 fold (or even 3-fold, 2-fold or bilateral) symmetry. In order to do this, Gargoyle must remember the symmetry group, origin, and symmetry axes of each trajectory, outline, and cluster. Extended Symmetry When I say that a set of objects has symmetry, I mean that the whole set of objects can be generated from a subset of the objects by repeated application of a small set of transformations (rotations, translations, and perhaps scalings). This differs from the group theoretic definition of symmetry as a set of transformations which leave the set of objects invariant (visibly unchanged). As a result, the following sorts of objects are symmetric: 1) Snowflakes, regular polygons, and circles have rotational symmetry (by either definition). 2) A (finite) picket fence has frieze symmetry (by my definition). 3) Bathroom tile floors, brick walls, and VLSI arrays have translational symmetry (by my definition). Positioning Control Points In the presence of a rotational symmetry tool, adding a new control point may mean adding several control points at the same time. For instance, a tool with 6-fold dihedral symmetry (snow-flake symmetry) will add 12 points at once (the original, 5 rotated points and 6 both mirrored and rotated). In the presence of such a tool, moving a point, will move 12 points. The parameters of such a tool are: 1) The origin of rotation 2) An angle describing the orientation of one of the mirror axes (for dihedral symmetries). Breaking up a trajectory into links when a symmetry tool is used is a bit tricky. The order in which points are entered no longer determines the edge order. As an extreme case, consider the difference between a pentagon and a five-pointed star. A freize symmetry tool (e.g. for making saw-teeth) requires 1) A direction of translation (the length of the vector is the period of the freize). 2) The number of periods. 3) The distance of the translational line from the origin (for freizes which reflect about this line). 4) The vertical reflection line. A translational symmetry tool (e.g. for making wall-paper) requires 1) Two translational directions. 2) The number of periods in each direction. 3) An origin (for arrays which mirror or rotate). Whatever the symmetry tool group, each point is part of an orbit -- those points which were generated by the same seed point. Most orbits have the same number of points as the number of operations in the group. However orbits are degenerate (e.g. the hexagon is in the dihedral group of order 6 by has only 6 points, instead of 12). The degeneracies result from the seed point being on a mirror axis, or a center of rotation. Sizes of symmetry groups are summarized below. Sizes of Symmetry Groups Rotational Groups The cyclic group of order n: Orbits have n points, except the center of rotation which has 1. The dihedral group of order n: Orbits have 2n points, except on mirror axes (with n), or the center of rotation (with 1). Freize Groups Freize group 1: with n periods: Orbits have n points. Freize group 2: Orbits have 2n points. Freize group 3: 2n points. Freize group 4: 2n points. Freize group 5: 2n points. Freize group 6: 4n points. IfileBBItitleIbodyMIhead1M%iM^MCMfNMIdisplaywMM;OOCO~M;NIhead2M]MzP M5M&MMMMN