CREATEDURERPOLYHEDRON  Create a mesh representing Durer's polyhedron .

   [V, F] = createDurerPolyhedron
   [V, E, F] = createDurerPolyhedron
   Returns a mesh data structure that represents Durer's polyhedron shown
   in "Melancholia". Vertices are stored in V as Nv-by-3 array of 3D
   coordinates, faces are stored in Nf-by-1 cell array containing the
   vertex indices of each face.
   Several hypotheses exist on the exact geometry of the solid. The one
   described in Mathworld (see references) is used here.

   Durer's polyhedron is generated from a centered unit cube. Several
   transforms are applied succesively:
   * Rotation around Oz by PI / 4
   * Rotation around Oy by asec(sqrt(3))
   * z-scaling by sqrt(1 + 3 / sqrt(5) )
   * truncation by two horizontal planes located at a distance of 
       (3 - sqrt(5)) / 2 from each azimutal vertex.

   Durer's polyhedron is composed of six pentagonal faces and 2 triangular
   faces. Pentagonal faces have angles 126, 108, 72, 108, and 126 degrees.
   triangular faces are equilateral.

   Example
     % Display Durer's polyhedron 
     [v f] = createDurerPolyhedron;
     figure; hold on; set(gcf, 'renderer', 'opengl');
     drawMesh(v, f, 'FaceColor', [.7 .7 .7]);
     axis equal; axis([-1 1 -1 1 -1 1]);
     view(3)

   See also
     meshes3d, createCube, createOctahedron

   References
   http://mathworld.wolfram.com/DuerersSolid.html
   http://en.wikipedia.org/wiki/Dürer_graph

Package: matgeom