|
Usage: to_nfold [options] fraction [input_file] Generalise an axial model by changing its rotational symmetry. Read a model, in OFF format, with an m-fold rotational axis on the z-axis, and create a new model, generally non-planar, with the same relative connections, but with an n-fold axis instead. fraction is given as n, or n/d (n and d integers). Vertices of a face originally separated by x/m of a turn around the z-axis will be separated by xd/n of a turn in the final model. The new model will be symmetrically coloured using colours from the base model. If input_file is not given the program reads from standard input. to_nfold is based on an idea by Bruce R. Gilson. Options -h,--help this help message (run 'off_util -H help' for general help) --version version information -x <idxs> vertex index numbers, separated by commas, the rings including these vertices will be rotated 180 degrees before processing and rotated back afterwards -p <args> transform ring of vertices of base model, and suppress normal to_nfold processing. Arguments are two or three numbers separated by commas: vertex index number (specifies the ring), the scale-xy factor (ring radius), and an optional translation-z (ring height). Can be used multiple times. Index numbers are preserved. -o <file> write output to file (default: write to standard output)
to_nfold 6 pri5 | antiview
to_nfold 3 pri5 | antiview
to_nfold 7/2 pri5 | antiview
to_nfold 5/3 dip5/2 | antiview
to_nfold 4 j_snub_disphenoid | antiview
to_nfold 2 j_snub_square_antiprism | antiview
unitile2d -s t | off_trans -R 90,0,0 | to_nfold 11/2 | antiview
antiview ant5/3 to_nfold 7 ant5/3 | antiview to_nfold 7 ant5/3 -x 0 | antiview
antiview ant5/3 to_nfold 2 ant5/3 -p 0,-1 | antiview
antiview snu4 to_nfold 2 snu4 -p 10,0.2 | antiview
First the cyclic symmetry of the model, Cn_from, is found. An arbitrary sector of angular width 2π / n_from is considered, and this sector is scaled by rotation to have angular width 2π · d_to / n_to. This determines the new vertex positions unambiguously.
The faces are determined by considering each set of faces which are equivalent under Cn_from symmetry, and then choosing a minimal chain of edges that will repeat by this symmtry to recreate the edges of this set of faces. The chain is transformed, edge by edge, to match the final symmetry and step. It is then repeated by the final symmetry into one or more circuits, which are the final faces.
To transform each edge, the original central angle is considered positive if the symmetry axis lies in the sweep of this edge and the last, otherwise negative, but if the edge intersects the symmetry axis (180 degree edge) then its sign is ambiguous. In this case, if the sum of angles with the adjoining edges is positive then the sign is taken as negative, and vice versa. If the sum is zero, then the sign is chosen, arbitrarily.
to_nfold is based on an idea by Bruce R. Gilson.
Up:
Programs and Documentation
Next:
symmetro - polyhedra with regular polygons at symmetry axes