Description of the Calculations
Previous  Top  Next

From the crystal class or point group, the program determines what symmetry operators to use in the calculations, and generates all the faces belonging to each form.

In order to find the crystal shape, the program solves for all intersections of three faces, which are the possible corners. However, if the crystal possesses mirror planes, it is only necessary to solve for a fraction of all the possible corners, and then reproduce the others by symmetry. For example, in class m3m, it is only necessary to find the corners in 1/48th of the crystal as a whole. This means that the calculations for crystals with mirror planes are faster than those for crystals without mirror planes; in class 432, it takes almost 8 times as long to calculate the general form (which contains 24 faces) as it does to calculate the general form in m3m (which contains 48 faces). After finding corners, each possible pair must be tested as defining an edge. For individual (non-twinned) crystals, this is the end of the calculation, although the crystal may be rotated to any orientation and rescaled as desired. Some simple tests distinguish between edges which are visible and those which are not, and no further processing of the image is required.

For contact twins, a composition plane (or planes) is added, and the superfluous portion of the crystal is removed. Then the crystal is reproduced according to the specified twin operation(s). For interpenetration twins, the individual is reproduced according to the twin operations, and then the intertwin corners and edges are located and drawn.

For epitaxial intergrowths, after generation of the two crystals they are rotated and translated so that they are in contact on the specified face, with specified vectors in each crystal being parallel. The intergrowths can also be drawn in interpenetration geometry, like twins.

For most interpenetration and some contact twins and many epitaxial intergrowths there will be some edges of one individual which are partially or entirely behind and hidden by another individual (this problem does not arise in single crystals). Preliminary drawings of multi-crystal aggregates may thus have some extra or false lines. In order to produce an absolutely perfect final drawing, an additional procedure breaks each edge into segments defined by the intersections (in projection) with other edges, then determines whether each segment is hidden by any face. This can also eliminate edges lying within faces, which occur in penetration twins with parallel, overlapping faces.

For drawing sections of crystals, it is necessary to locate the intersection of crystal edges with the section plane, which is taken to be parallel to the screen or paper; these intersections are the corners of the section. For modeling linear growth zoning in single crystals or concentric twins, it is only necessary to rescale the crystal corners before solving for the section in each zone. For epitaxial crystals and non-linear zoning, it is necessary to repeat the entire calculation for each zone.

In 3D Drawing modes, the drawing procedure is somewhat different from the above. These modes use a depth buffer which contains the depth of the foremost object at each pixel, so that it is not necessary to solve explicitly for the intersections or front-back relationships of objects such as interpenetrating crystals. It also allows surfaces, such as crystal faces or mirror planes, to be translucent.