En este proyecto, exploro la teselación hexagonal, mostrando cómo se forma un panal de abejas. Es una forma perfecta de introducir a los estudiantes en conceptos de simetría, teselación y sus aplicaciones en la naturaleza.
# ------ · ------ · ------ MatemáTICas: 1,1,2,3,5,8,13,... ------ · ------ · ------ #[br]# Librerías[br]import math[br]import time[br]import random[br][br]# # [br]time.sleep(2)[br]print(" ------ · MatemáTICas: 1,1,2,3,5,8,13,... https://matematicas11235813.luismiglesias.es · ------ ")[br]print(" Teselación hexagonal. Panal de abejas ")[br]print(" Luis M. Iglesias @luismiglesias 11/01/2024 ")[br]print("------ · ------ · ------ · ------ · --- Geogebra + Python #pyggb --- · ------ · ------ · ------ · ------")[br][br]# Paleta de colores[br]#paleta_de_colores= ['aqua','azure','blue','cyan','coral','gold','green','grey','lightgrey','magenta','maroon','olive','orange','pink','purple','red','skyblue','violet'][br]paleta_de_colores= ['aqua','azure','blue','cyan','coral','gold','green','magenta','maroon','olive','orange','pink','purple','red','skyblue','violet'][br][br]# Configuración[br]print(" --> Iniciando la construcción")[br]#print(" --> Iniciando la construcción:", time.ctime(time.time()))[br]time.sleep(1)[br]inf_izq=Point(-5000, -5000,is_visible=False)[br]inf_der=Point(5000, -5000,is_visible=False)[br]fondo=Polygon(inf_izq,inf_der,4)[br]fondo.color='black'[br]fondo.opacity=0[br]time.sleep(1)[br][br]def teselacion_hexagonal(x_inicio,y_inicio,lado_hexagono,color_teselacion,num_columnas):[br] distancia_entre_hexagonos=lado_hexagono+(lado_hexagono/2)[br] apotema_hexagono=math.sqrt(math.pow(lado_hexagono,2)-math.pow(lado_hexagono/2,2))[br] altura_hexagono=2*apotema_hexagono[br] print(f" Teselación compuesta por",num_columnas, "x", num_columnas,"=", int(math.pow(num_columnas,2)),"hexágonos regulares de lado", lado_hexagono, "u.")[br] [br] for i in range(0,num_columnas):[br] #print(f"i=",i)[br] #print(f"resto=",i%2)[br] if i%2==0:[br] for j in range(0,num_columnas):[br] punto_aux_1=Point(x_inicio+i*distancia_entre_hexagonos,y_inicio+j*altura_hexagono,is_visible=False)[br] punto_aux_2=Point(x_inicio+i*distancia_entre_hexagonos+lado_hexagono,y_inicio+j*altura_hexagono,is_visible=False)[br] hexagono_aux=Polygon(punto_aux_1,punto_aux_2,6)[br] hexagono_aux.color=color_teselacion[br] #4[br] #fondo.color='white'[br] #hexagono_aux.color='blue'[br] #5[br] hexagono_aux.color=random.choice(paleta_de_colores)[br] hexagono_aux.line_thickness=8[br] time.sleep(0.001)[br] else:[br] for j in range(0,num_columnas):[br] punto_aux_1=Point(x_inicio+i*distancia_entre_hexagonos,y_inicio+(2*j+1)*altura_hexagono/2,is_visible=False)[br] punto_aux_2=Point(x_inicio+i*distancia_entre_hexagonos+lado_hexagono,y_inicio+(2*j+1)*altura_hexagono/2,is_visible=False)[br] hexagono_aux=Polygon(punto_aux_1,punto_aux_2,6)[br] hexagono_aux.color=color_teselacion[br] #4[br] #fondo.color='white'[br] #hexagono_aux.color='red'[br] #5[br] hexagono_aux.color=random.choice(paleta_de_colores)[br] hexagono_aux.line_thickness=8[br] time.sleep(0.001)[br] [br]'''[br]color_teselacion=random.choice(paleta_de_colores)[br]teselacion_hexagonal(-10,10,1,color_teselacion,5)[br]teselacion_hexagonal(10,10,1,color_teselacion,5)[br]teselacion_hexagonal(10,-10,1,color_teselacion,5)[br]teselacion_hexagonal(-10,-10,1,color_teselacion,5)[br]teselacion_hexagonal(0,0,1,color_teselacion,5)[br]'''[br][br]'''[br][br]#1[br]color_teselacion='purple'[br]teselacion_hexagonal(0,0,1,color_teselacion,5)[br]'''[br][br]'''[br]#2 zoom-[br]color_teselacion='blue'[br]teselacion_hexagonal(-8,-3,2,color_teselacion,5)[br]'''[br][br]'''[br]#3 y dentro #4 y #5[br]fondo.opacity=1[br]color_teselacion='gold'[br]teselacion_hexagonal(5,5,1,color_teselacion,8)[br]'''[br][br]#'''[br][br]#6 va con 5 dentro[br]fondo.color='black'[br]fondo.opacity=1[br]color_teselacion=random.choice(paleta_de_colores)[br]teselacion_hexagonal(-10,10,0.8,color_teselacion,6)[br]teselacion_hexagonal(10,10,0.8,color_teselacion,6)[br]teselacion_hexagonal(10,-10,0.8,color_teselacion,6)[br]teselacion_hexagonal(-10,-10,0.8,color_teselacion,6)[br]teselacion_hexagonal(0,0,0.8,color_teselacion,6)[br][br]#'''[br][br]print(" --> Construcción finalizada")[br][br]print("------ · ------ · ------ · ------ · --- Geogebra + Python #pyggb --- · ------ · ------ · ------ · ------")[br]print("")[br]print("")[br]'''[br]# ------ · ------ · --- Geogebra + Python --- · ------ · ------ #