Polyhedron¶

class
diofant.combinatorics.polyhedron.
Polyhedron
[source]¶ Represents the polyhedral symmetry group (PSG).
The PSG is one of the symmetry groups of the Platonic solids. There are three polyhedral groups: the tetrahedral group of order 12, the octahedral group of order 24, and the icosahedral group of order 60.
All doctests have been given in the docstring of the constructor of the object.
References
http://mathworld.wolfram.com/PolyhedralGroup.html

property
array_form
¶ Return the indices of the corners.
The indices are given relative to the original position of corners.
Examples
>>> tetrahedron.array_form [0, 1, 2, 3]
>>> tetrahedron.rotate(0) >>> tetrahedron.array_form [0, 2, 3, 1] >>> tetrahedron.pgroup[0].array_form [0, 2, 3, 1] >>> tetrahedron.reset()
See also

property
corners
¶ Get the corners of the Polyhedron.
The method
vertices
is an alias forcorners
.Examples
>>> p = Polyhedron(list('abcd')) >>> p.corners == p.vertices == (a, b, c, d) True
See also

property
cyclic_form
¶ Return the indices of the corners in cyclic notation.
The indices are given relative to the original position of corners.
See also

property
edges
¶ Given the faces of the polyhedra we can get the edges.
Examples
>>> corners = (a, b, c) >>> faces = [(0, 1, 2)] >>> Polyhedron(corners, faces).edges {(0, 1), (0, 2), (1, 2)}

property
faces
¶ Get the faces of the Polyhedron.

property
pgroup
¶ Get the permutations of the Polyhedron.

reset
()[source]¶ Return corners to their original positions.
Examples
>>> tetrahedron.corners (0, 1, 2, 3) >>> tetrahedron.rotate(0) >>> tetrahedron.corners (0, 2, 3, 1) >>> tetrahedron.reset() >>> tetrahedron.corners (0, 1, 2, 3)

rotate
(perm)[source]¶ Apply a permutation to the polyhedron in place. The permutation may be given as a Permutation instance or an integer indicating which permutation from pgroup of the Polyhedron should be applied.
This is an operation that is analogous to rotation about an axis by a fixed increment.
Notes
When a Permutation is applied, no check is done to see if that is a valid permutation for the Polyhedron. For example, a cube could be given a permutation which effectively swaps only 2 vertices. A valid permutation (that rotates the object in a physical way) will be obtained if one only uses permutations from the
pgroup
of the Polyhedron. On the other hand, allowing arbitrary rotations (applications of permutations) gives a way to follow named elements rather than indices since Polyhedron allows vertices to be named while Permutation works only with indices.Examples
>>> cube.corners (0, 1, 2, 3, 4, 5, 6, 7) >>> cube.rotate(0) >>> cube.corners (1, 2, 3, 0, 5, 6, 7, 4)
A nonphysical “rotation” that is not prohibited by this method:
>>> cube.reset() >>> cube.rotate(Permutation([[1, 2]], size=8)) >>> cube.corners (0, 2, 1, 3, 4, 5, 6, 7)
Polyhedron can be used to follow elements of set that are identified by letters instead of integers:
>>> shadow = h5 = Polyhedron(list('abcde')) >>> p = Permutation([3, 0, 1, 2, 4]) >>> h5.rotate(p) >>> h5.corners (d, a, b, c, e) >>> _ == shadow.corners True >>> copy = h5.copy() >>> h5.rotate(p) >>> h5.corners == copy.corners False

property
size
¶ Get the number of corners of the Polyhedron.

property
vertices
¶ Get the corners of the Polyhedron.
The method
vertices
is an alias forcorners
.Examples
>>> p = Polyhedron(list('abcd')) >>> p.corners == p.vertices == (a, b, c, d) True
See also

property