def generate_polygon_on_xz_side_length(edges,side_length,offset=0) :
  ''' Return an polygon on plan XZ: with edges edges from length side_length, with offset offset. 
              
             z
            /
      _____/____x
          /
         /                 plan XZ.
   '''

  angle=360.0/side_length
  
  polygon=[]         # Polygon vertice container.
  scale=360.0/edges  # Computing of the angle separating 2 points from the polygon.
  
  start_vertex1=Vertex(-side_length/2.,0.0,0)
  start_vertex2=Vertex(side_length/2.,0.0,0)
    
  point_to_rotate=start_vertex1
  rotate_point=start_vertex2
  
  polygon.append(point_to_rotate)
  polygon.append(rotate_point)
  
  i=2
  while i < edges :
  
    vertex=rotate_on_xz(rotate_point,abs(180-scale),point_to_rotate)
    
    point_to_rotate=rotate_point
    rotate_point=vertex
    
    polygon.append(vertex)
    
    i += 1
  
  center=get_center_from_polygon(polygon) # Compute polygon center.
  
  tmp=[]
  for v in polygon :
    # Translate polygon vertices so as his center is the display center.
    tmp.append(translate(v,-center.wx,-center.wy,-center.wz))
  
  
  if offset :
    offset_set=[]
    for v in tmp :
      offset_set.append(rotate_y(v,offset))
    
    tmp=offset_set  
  
  polygon=tmp
  return polygon     
Beispiel #2
0
def generate_dodecahedron(side_length):
    ''' Generate an dodecahedron in relationship to the argument side_length
      taken as basis for the dodecahedron generation. 
      And return an sequence of pentagons composing the dodecahedron. '''

    ####################################################################
    # The commented print directives are set to made the evidence that #
    # the dodecahedron is not regular:                                 #
    # for every pentagon there one only segment length which is not    #
    # equal to the others and i don't know why.                        #
    # The theorie from the icosahedron face center,                    #
    # issue from the book from Marius Apetri doesn't work like it      #
    # should. Maybe my implementation from the concept.                #
    # If you find an answers thank's to contact me by                  #
    # mail: [email protected]                                   #
    ####################################################################

    ico = generate_icosahedron(side_length)[1]

    dodecahedron = []  # Define the pentagones contains array container.

    pentagone = []  # Define an pentagone temporary container.
    pentagone.append(get_center_from_polygon(ico[0]))
    pentagone.append(get_center_from_polygon(ico[5]))
    pentagone.append(get_center_from_polygon(ico[1]))
    pentagone.append(get_center_from_polygon(ico[6]))
    pentagone.append(get_center_from_polygon(ico[2]))
    dodecahedron.append(
        pentagone)  # Add pentagone to dodecahedron pentagones container.

    # print 80*'-'
    # print "1"
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[0]),get_center_from_polygon(ico[5]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[5]),get_center_from_polygon(ico[1]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[1]),get_center_from_polygon(ico[6]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[6]),get_center_from_polygon(ico[2]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[0]),get_center_from_polygon(ico[2]))

    pentagone = []  # Define an pentagone temporary container.
    pentagone.append(get_center_from_polygon(ico[9]))
    pentagone.append(get_center_from_polygon(ico[3]))
    pentagone.append(get_center_from_polygon(ico[7]))
    pentagone.append(get_center_from_polygon(ico[19]))
    pentagone.append(get_center_from_polygon(ico[13]))
    dodecahedron.append(
        pentagone)  # Add pentagone to dodecahedron pentagones container.

    # print 80*'-'
    # print "2"
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[9]),get_center_from_polygon(ico[3]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[3]),get_center_from_polygon(ico[7]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[7]),get_center_from_polygon(ico[19]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[19]),get_center_from_polygon(ico[13]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[13]),get_center_from_polygon(ico[9]))

    pentagone = []  # Define an pentagone temporary container.
    pentagone.append(get_center_from_polygon(ico[9]))
    pentagone.append(get_center_from_polygon(ico[14]))
    pentagone.append(get_center_from_polygon(ico[16]))
    pentagone.append(get_center_from_polygon(ico[4]))
    pentagone.append(get_center_from_polygon(ico[3]))
    dodecahedron.append(
        pentagone)  # Add pentagone to dodecahedron pentagones container.

    # print 80*'-'
    # print "3"
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[9]),get_center_from_polygon(ico[14]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[14]),get_center_from_polygon(ico[16]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[16]),get_center_from_polygon(ico[4]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[4]),get_center_from_polygon(ico[3]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[3]),get_center_from_polygon(ico[9]))

    pentagone = []  # Define an pentagone temporary container.
    pentagone.append(get_center_from_polygon(ico[0]))
    pentagone.append(get_center_from_polygon(ico[2]))
    pentagone.append(get_center_from_polygon(ico[7]))
    pentagone.append(get_center_from_polygon(ico[3]))
    pentagone.append(get_center_from_polygon(ico[4]))
    dodecahedron.append(
        pentagone)  # Add pentagone to dodecahedron pentagones container.

    # print 80*'-'
    # print "4"
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[0]),get_center_from_polygon(ico[2]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[2]),get_center_from_polygon(ico[7]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[7]),get_center_from_polygon(ico[3]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[3]),get_center_from_polygon(ico[4]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[4]),get_center_from_polygon(ico[0]))

    pentagone = []  # Define an pentagone temporary container.
    pentagone.append(get_center_from_polygon(ico[5]))
    pentagone.append(get_center_from_polygon(ico[0]))
    pentagone.append(get_center_from_polygon(ico[4]))
    pentagone.append(get_center_from_polygon(ico[16]))
    pentagone.append(get_center_from_polygon(ico[17]))
    dodecahedron.append(
        pentagone)  # Add pentagone to dodecahedron pentagones container.

    # print 80*'-'
    # print "5"
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[5]),get_center_from_polygon(ico[0]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[0]),get_center_from_polygon(ico[4]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[4]),get_center_from_polygon(ico[16]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[16]),get_center_from_polygon(ico[17]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[17]),get_center_from_polygon(ico[5]))

    pentagone = []  # Define an pentagone temporary container.
    pentagone.append(get_center_from_polygon(ico[17]))
    pentagone.append(get_center_from_polygon(ico[5]))
    pentagone.append(get_center_from_polygon(ico[1]))
    pentagone.append(get_center_from_polygon(ico[11]))
    pentagone.append(get_center_from_polygon(ico[15]))
    dodecahedron.append(
        pentagone)  # Add pentagone to dodecahedron pentagones container.

    # print 80*'-'
    # print "6"
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[17]),get_center_from_polygon(ico[5]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[5]),get_center_from_polygon(ico[1]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[1]),get_center_from_polygon(ico[11]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[11]),get_center_from_polygon(ico[15]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[15]),get_center_from_polygon(ico[17]))

    pentagone = []  # Define an pentagone temporary container.
    pentagone.append(get_center_from_polygon(ico[15]))
    pentagone.append(get_center_from_polygon(ico[17]))
    pentagone.append(get_center_from_polygon(ico[16]))
    pentagone.append(get_center_from_polygon(ico[14]))
    pentagone.append(get_center_from_polygon(ico[10]))
    dodecahedron.append(
        pentagone)  # Add pentagone to dodecahedron pentagones container.

    # print 80*'-'
    # print "7"
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[15]),get_center_from_polygon(ico[17]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[17]),get_center_from_polygon(ico[16]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[16]),get_center_from_polygon(ico[14]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[14]),get_center_from_polygon(ico[10]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[15]),get_center_from_polygon(ico[10]))

    pentagone = []  # Define an pentagone temporary container.
    pentagone.append(get_center_from_polygon(ico[10]))
    pentagone.append(get_center_from_polygon(ico[14]))
    pentagone.append(get_center_from_polygon(ico[9]))
    pentagone.append(get_center_from_polygon(ico[13]))
    pentagone.append(get_center_from_polygon(ico[8]))
    dodecahedron.append(
        pentagone)  # Add pentagone to dodecahedron pentagones container.

    # print 80*'-'
    # print "8"
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[10]),get_center_from_polygon(ico[14]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[14]),get_center_from_polygon(ico[9]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[9]),get_center_from_polygon(ico[13]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[13]),get_center_from_polygon(ico[8]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[8]),get_center_from_polygon(ico[10]))

    pentagone = []  # Define an pentagone temporary container.
    pentagone.append(get_center_from_polygon(ico[8]))
    pentagone.append(get_center_from_polygon(ico[10]))
    pentagone.append(get_center_from_polygon(ico[15]))
    pentagone.append(get_center_from_polygon(ico[11]))
    pentagone.append(get_center_from_polygon(ico[12]))
    dodecahedron.append(
        pentagone)  # Add pentagone to dodecahedron pentagones container.

    # print 80*'-'
    # print "9"
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[8]),get_center_from_polygon(ico[10]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[10]),get_center_from_polygon(ico[15]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[15]),get_center_from_polygon(ico[11]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[11]),get_center_from_polygon(ico[12]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[12]),get_center_from_polygon(ico[8]))

    pentagone = []  # Define an pentagone temporary container.
    pentagone.append(get_center_from_polygon(ico[11]))
    pentagone.append(get_center_from_polygon(ico[12]))
    pentagone.append(get_center_from_polygon(ico[18]))
    pentagone.append(get_center_from_polygon(ico[6]))
    pentagone.append(get_center_from_polygon(ico[1]))
    dodecahedron.append(
        pentagone)  # Add pentagone to dodecahedron pentagones container.

    # print 80*'-'
    # print "10"
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[11]),get_center_from_polygon(ico[12]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[12]),get_center_from_polygon(ico[18]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[18]),get_center_from_polygon(ico[6]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[6]),get_center_from_polygon(ico[1]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[1]),get_center_from_polygon(ico[11]))

    pentagone = []  # Define an pentagone temporary container.
    pentagone.append(get_center_from_polygon(ico[12]))
    pentagone.append(get_center_from_polygon(ico[18]))
    pentagone.append(get_center_from_polygon(ico[19]))
    pentagone.append(get_center_from_polygon(ico[13]))
    pentagone.append(get_center_from_polygon(ico[8]))
    dodecahedron.append(
        pentagone)  # Add pentagone to dodecahedron pentagones container.

    # print 80*'-'
    # print "11"
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[12]),get_center_from_polygon(ico[18]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[18]),get_center_from_polygon(ico[19]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[19]),get_center_from_polygon(ico[13]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[13]),get_center_from_polygon(ico[8]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[8]),get_center_from_polygon(ico[12]))

    pentagone = []  # Define an pentagone temporary container.
    pentagone.append(get_center_from_polygon(ico[6]))
    pentagone.append(get_center_from_polygon(ico[2]))
    pentagone.append(get_center_from_polygon(ico[7]))
    pentagone.append(get_center_from_polygon(ico[19]))
    pentagone.append(get_center_from_polygon(ico[18]))
    dodecahedron.append(
        pentagone)  # Add pentagone to dodecahedron pentagones container.

    # print 80*'-'
    # print "12"
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[6]),get_center_from_polygon(ico[2]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[2]),get_center_from_polygon(ico[7]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[7]),get_center_from_polygon(ico[19]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[19]),get_center_from_polygon(ico[18]))
    # print "get length ",get_distance_vertices(get_center_from_polygon(ico[18]),get_center_from_polygon(ico[6]))

    return dodecahedron
def generate_dodecahedron(side_length) :
  ''' Generate an dodecahedron in relationship to the argument side_length
      taken as basis for the dodecahedron generation. 
      And return an sequence of pentagons composing the dodecahedron. '''
  
  ####################################################################
  # The commented print directives are set to made the evidence that #
  # the dodecahedron is not regular:                                 #
  # for every pentagon there one only segment length which is not    #
  # equal to the others and i don't know why.                        # 
  # The theorie from the icosahedron face center,                    #
  # issue from the book from Marius Apetri doesn't work like it      #
  # should. Maybe my implementation from the concept.                #
  # If you find an answers thank's to contact me by                  #
  # mail: [email protected]                                   #
  ####################################################################
  
  ico=generate_icosahedron(side_length)[1]
  
  dodecahedron=[]  # Define the pentagones contains array container.
  
  pentagone=[]     # Define an pentagone temporary container.
  pentagone.append(get_center_from_polygon(ico[0]))
  pentagone.append(get_center_from_polygon(ico[5]))
  pentagone.append(get_center_from_polygon(ico[1]))
  pentagone.append(get_center_from_polygon(ico[6]))
  pentagone.append(get_center_from_polygon(ico[2]))
  dodecahedron.append(pentagone) # Add pentagone to dodecahedron pentagones container.
  
  # print 80*'-'
  # print "1"
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[0]),get_center_from_polygon(ico[5]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[5]),get_center_from_polygon(ico[1]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[1]),get_center_from_polygon(ico[6]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[6]),get_center_from_polygon(ico[2]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[0]),get_center_from_polygon(ico[2]))

  
  pentagone=[]     # Define an pentagone temporary container.
  pentagone.append(get_center_from_polygon(ico[9]))
  pentagone.append(get_center_from_polygon(ico[3]))
  pentagone.append(get_center_from_polygon(ico[7]))
  pentagone.append(get_center_from_polygon(ico[19]))
  pentagone.append(get_center_from_polygon(ico[13]))
  dodecahedron.append(pentagone) # Add pentagone to dodecahedron pentagones container.
  
  # print 80*'-'
  # print "2"
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[9]),get_center_from_polygon(ico[3]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[3]),get_center_from_polygon(ico[7]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[7]),get_center_from_polygon(ico[19]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[19]),get_center_from_polygon(ico[13]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[13]),get_center_from_polygon(ico[9]))
  
  
  pentagone=[]     # Define an pentagone temporary container.
  pentagone.append(get_center_from_polygon(ico[9])) 
  pentagone.append(get_center_from_polygon(ico[14])) 
  pentagone.append(get_center_from_polygon(ico[16])) 
  pentagone.append(get_center_from_polygon(ico[4]))
  pentagone.append(get_center_from_polygon(ico[3]))
  dodecahedron.append(pentagone) # Add pentagone to dodecahedron pentagones container.
  
  # print 80*'-'
  # print "3"
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[9]),get_center_from_polygon(ico[14]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[14]),get_center_from_polygon(ico[16]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[16]),get_center_from_polygon(ico[4]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[4]),get_center_from_polygon(ico[3]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[3]),get_center_from_polygon(ico[9]))
  
  pentagone=[]     # Define an pentagone temporary container.
  pentagone.append(get_center_from_polygon(ico[0])) 
  pentagone.append(get_center_from_polygon(ico[2]))
  pentagone.append(get_center_from_polygon(ico[7]))
  pentagone.append(get_center_from_polygon(ico[3]))
  pentagone.append(get_center_from_polygon(ico[4]))
  dodecahedron.append(pentagone) # Add pentagone to dodecahedron pentagones container.
  
  # print 80*'-'
  # print "4"
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[0]),get_center_from_polygon(ico[2]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[2]),get_center_from_polygon(ico[7]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[7]),get_center_from_polygon(ico[3]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[3]),get_center_from_polygon(ico[4]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[4]),get_center_from_polygon(ico[0]))
  
  pentagone=[]     # Define an pentagone temporary container.
  pentagone.append(get_center_from_polygon(ico[5])) 
  pentagone.append(get_center_from_polygon(ico[0]))
  pentagone.append(get_center_from_polygon(ico[4]))
  pentagone.append(get_center_from_polygon(ico[16]))
  pentagone.append(get_center_from_polygon(ico[17])) 
  dodecahedron.append(pentagone) # Add pentagone to dodecahedron pentagones container.
  
  # print 80*'-'
  # print "5"
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[5]),get_center_from_polygon(ico[0]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[0]),get_center_from_polygon(ico[4]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[4]),get_center_from_polygon(ico[16]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[16]),get_center_from_polygon(ico[17]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[17]),get_center_from_polygon(ico[5]))
  
  pentagone=[]  # Define an pentagone temporary container.
  pentagone.append(get_center_from_polygon(ico[17])) 
  pentagone.append(get_center_from_polygon(ico[5]))
  pentagone.append(get_center_from_polygon(ico[1]))
  pentagone.append(get_center_from_polygon(ico[11]))
  pentagone.append(get_center_from_polygon(ico[15])) 
  dodecahedron.append(pentagone) # Add pentagone to dodecahedron pentagones container.
  
  # print 80*'-'
  # print "6"
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[17]),get_center_from_polygon(ico[5]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[5]),get_center_from_polygon(ico[1]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[1]),get_center_from_polygon(ico[11]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[11]),get_center_from_polygon(ico[15]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[15]),get_center_from_polygon(ico[17]))
  
  pentagone=[]     # Define an pentagone temporary container.
  pentagone.append(get_center_from_polygon(ico[15])) 
  pentagone.append(get_center_from_polygon(ico[17]))
  pentagone.append(get_center_from_polygon(ico[16]))
  pentagone.append(get_center_from_polygon(ico[14]))
  pentagone.append(get_center_from_polygon(ico[10])) 
  dodecahedron.append(pentagone) # Add pentagone to dodecahedron pentagones container.
  
  # print 80*'-'
  # print "7"
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[15]),get_center_from_polygon(ico[17]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[17]),get_center_from_polygon(ico[16]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[16]),get_center_from_polygon(ico[14]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[14]),get_center_from_polygon(ico[10]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[15]),get_center_from_polygon(ico[10]))
  
  pentagone=[]     # Define an pentagone temporary container.
  pentagone.append(get_center_from_polygon(ico[10])) 
  pentagone.append(get_center_from_polygon(ico[14]))
  pentagone.append(get_center_from_polygon(ico[9]))
  pentagone.append(get_center_from_polygon(ico[13]))
  pentagone.append(get_center_from_polygon(ico[8])) 
  dodecahedron.append(pentagone) # Add pentagone to dodecahedron pentagones container.
  
  # print 80*'-'
  # print "8"
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[10]),get_center_from_polygon(ico[14]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[14]),get_center_from_polygon(ico[9]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[9]),get_center_from_polygon(ico[13]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[13]),get_center_from_polygon(ico[8]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[8]),get_center_from_polygon(ico[10]))
  
  pentagone=[]     # Define an pentagone temporary container.
  pentagone.append(get_center_from_polygon(ico[8])) 
  pentagone.append(get_center_from_polygon(ico[10]))
  pentagone.append(get_center_from_polygon(ico[15]))
  pentagone.append(get_center_from_polygon(ico[11]))
  pentagone.append(get_center_from_polygon(ico[12])) 
  dodecahedron.append(pentagone) # Add pentagone to dodecahedron pentagones container.
  
  # print 80*'-'
  # print "9"
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[8]),get_center_from_polygon(ico[10]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[10]),get_center_from_polygon(ico[15]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[15]),get_center_from_polygon(ico[11]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[11]),get_center_from_polygon(ico[12]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[12]),get_center_from_polygon(ico[8]))
  
  pentagone=[]  # Define an pentagone temporary container.
  pentagone.append(get_center_from_polygon(ico[11])) 
  pentagone.append(get_center_from_polygon(ico[12]))
  pentagone.append(get_center_from_polygon(ico[18])) 
  pentagone.append(get_center_from_polygon(ico[6]))
  pentagone.append(get_center_from_polygon(ico[1]))
  dodecahedron.append(pentagone) # Add pentagone to dodecahedron pentagones container.
  
  # print 80*'-'
  # print "10"
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[11]),get_center_from_polygon(ico[12]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[12]),get_center_from_polygon(ico[18]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[18]),get_center_from_polygon(ico[6]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[6]),get_center_from_polygon(ico[1]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[1]),get_center_from_polygon(ico[11]))
  
  pentagone=[]     # Define an pentagone temporary container.
  pentagone.append(get_center_from_polygon(ico[12])) 
  pentagone.append(get_center_from_polygon(ico[18]))
  pentagone.append(get_center_from_polygon(ico[19])) 
  pentagone.append(get_center_from_polygon(ico[13]))
  pentagone.append(get_center_from_polygon(ico[8]))
  dodecahedron.append(pentagone) # Add pentagone to dodecahedron pentagones container.
  
  
  
  # print 80*'-'
  # print "11"
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[12]),get_center_from_polygon(ico[18]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[18]),get_center_from_polygon(ico[19]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[19]),get_center_from_polygon(ico[13]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[13]),get_center_from_polygon(ico[8]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[8]),get_center_from_polygon(ico[12]))
  
  pentagone=[]     # Define an pentagone temporary container.
  pentagone.append(get_center_from_polygon(ico[6]))
  pentagone.append(get_center_from_polygon(ico[2]))
  pentagone.append(get_center_from_polygon(ico[7]))
  pentagone.append(get_center_from_polygon(ico[19]))
  pentagone.append(get_center_from_polygon(ico[18]))
  dodecahedron.append(pentagone) # Add pentagone to dodecahedron pentagones container.
  
  # print 80*'-'
  # print "12"
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[6]),get_center_from_polygon(ico[2]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[2]),get_center_from_polygon(ico[7]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[7]),get_center_from_polygon(ico[19]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[19]),get_center_from_polygon(ico[18]))
  # print "get length ",get_distance_vertices(get_center_from_polygon(ico[18]),get_center_from_polygon(ico[6]))
  
  return dodecahedron