Finalmente, en este vídeo muestro cómo la rotación de segmentos puede generar patrones geométricos interesantes. Es ideal para discutir temas como la rotación y la simetría en el aula.
# [br]print(" ------ · MatemáTICas: 1,1,2,3,5,8,13,... https://matematicas11235813.luismiglesias.es · ------ ")[br]print(" Diseños geométricos. Rotación de segmentos. ")[br]print(" Luis M. Iglesias @luismiglesias 18/01/2024 ")[br]print("------ · ------ · ------ · ------ · --- Geogebra + Python #pyggb --- · ------ · ------ · ------ · ------")[br]# [br][br]# Librerías[br][br]import math[br]import time[br]import random[br][br]# Configuración[br][br]origen_coord=Point(0, 0,is_visible=False)[br]fondo=Circle(origen_coord, 50000)[br]fondo.color='black'[br]fondo.opacity=0[br]grosor=4[br]time.sleep(2)[br]fondo.opacity=1[br]print(" --> Iniciando la construcción")[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= ['blue','gold','green','magenta','olive','orange','purple','red','violet'][br][br]# Segmento[br]def segmento_parametricas(x1,y1,x2,y2,n,color):[br] segmento=[][br] for i in range(n):[br] t = i / (n - 1)[br] punto_segmento = Point(x1 + t*(x2 - x1), y1 + t*(y2 - y1))[br] punto_segmento.color = color[br] segmento.append(punto_segmento)[br] time.sleep(2)[br] return segmento[br][br]def rotar_segmento(lista_puntos_segmento,alfa,color):[br] #print("Voy rotando el segmento con ángulo: ", alfa)[br] for j in range(0,len(lista_puntos_segmento)):[br] punto = lista_puntos_segmento[j][br] xprima = punto.x * math.cos(alfa) - punto.y * math.sin(alfa)[br] yprima = punto.x * math.sin(alfa) + punto.y * math.cos(alfa)[br] [br] punto_rotado = Point(xprima, yprima)[br] punto_rotado.color=color[br] #print("Por aquí giro: ", alfa, " - Punto_rotado: ", xprima, ",",yprima)[br] time.sleep(0.005)[br][br]n=14[br]lista_puntos_segmento1 = segmento_parametricas(0,0,2,0,n,'gold')[br]#print(lista_puntos_segmento1)[br][br]angulo_rotacion=0.15708[br]while angulo_rotacion < 2*math.pi:[br] rotar_segmento(lista_puntos_segmento1,angulo_rotacion,'gold')[br] angulo_rotacion = angulo_rotacion + 0.15708[br][br]'''[br]n=10[br]lista_puntos_segmento2 = segmento_parametricas(2.5,0,4,0,n,'gold')[br]#print(lista_puntos_segmento2)[br][br]angulo_rotacion = 0.31416[br]while angulo_rotacion < 2*math.pi:[br] rotar_segmento(lista_puntos_segmento2,angulo_rotacion,'gold')[br] angulo_rotacion = angulo_rotacion + 0.31416[br]'''[br]'''[br]n=6[br]lista_puntos_segmento3 = segmento_parametricas(4.5,0,5.5,0,n,'gold')[br]print(lista_puntos_segmento3)[br][br]angulo_rotacion = 0.15708[br]while angulo_rotacion < 2*math.pi:[br] rotar_segmento(lista_puntos_segmento3,angulo_rotacion,'gold')[br] angulo_rotacion = angulo_rotacion + 0.15708[br][br]n=4[br]lista_puntos_segmento4 = segmento_parametricas(6,0,6.5,0,n,'gold')[br]print(lista_puntos_segmento4)[br][br]angulo_rotacion = 0.31416[br]while angulo_rotacion < 2*math.pi:[br] rotar_segmento(lista_puntos_segmento4,angulo_rotacion,'gold')[br] angulo_rotacion = angulo_rotacion + 0.31416[br][br]grosor = 8[br]colorcirculo = 'white'[br]centro = Point(0,0,is_visible=False)[br]Circle(centro,2,line_thickness=grosor,color=colorcirculo)[br]time.sleep(0.3)[br]Circle(centro,2.5,line_thickness=grosor,color=colorcirculo)[br]time.sleep(0.3)[br]Circle(centro,4.0,line_thickness=grosor,color=colorcirculo)[br]time.sleep(0.3)[br]Circle(centro,4.5,line_thickness=grosor,color=colorcirculo)[br]time.sleep(0.3)[br]Circle(centro,5.5,line_thickness=grosor,color=colorcirculo)[br]time.sleep(0.3)[br]Circle(centro,6.0,line_thickness=grosor,color=colorcirculo)[br]time.sleep(0.3)[br]Circle(centro,6.5,line_thickness=grosor,color=colorcirculo)[br]'''[br]print(" --> Construcción finalizada")[br]# ------ · ------ · --- Geogebra + Python --- · ------ · ------ #