PRESENTACIÓN
Python con GeoGebra
Construcción 1
Construcción 1
import time[br]import math[br][br][br]#función para dibujar los puntos[br]def Puntos(radio,num_puntos):[br] m=0[br] while m<=2*math.pi:[br] punto=Point(radio*math.cos(m), radio*math.sin(m))[br] punto.size=4[br] puntos.append(punto)[br] m=m+2*math.pi/num_puntos[br] time.sleep(0.1)[br][br][br] [br]#función para dibujar los segmentos[br]def Segmentos(num_puntos):[br] for i in range(0,num_puntos-1):[br] for j in range(i+1,num_puntos):[br] segmento=Segment(puntos[i], puntos[j])[br] segmento.color='black'[br] segmentos.append(segmento)[br] time.sleep(0.1)[br] [br]#programa principal[br][br]time.sleep(1)[br]#informamos en que consiste la actividad[br]print('Introduce los datos que te pide el programa')[br]time.sleep(3)[br]print('y responde a las preguntas que te formula sobre la construcción.')[br]time.sleep(3)[br][br]#Dibujamos una circunferencia para que el fondo sea blanco[br]P=Point(0,0,is_visible=False)[br]C=Circle(P,30)[br]C.color='white'[br]C.opacity=1[br]time.sleep(0.1)[br][br]#nos pide el radio y el número de puntos[br][br]r= float(input('Radio:'))[br]n=int(input('Número de puntos:'))[br][br][br]#creamos una lista vacía donde la función Puntos acumulará los puntos[br]puntos=[][br]#llamamos a la función Puntos[br]Puntos(r,n)[br]#creamos una lista vacía donde la función Segmentos acumulará los segmentos[br]segmentos=[][br]#llamamos a la función Segmentos[br]Segmentos(n)[br]time.sleep(2)[br][br][br]#definimos la variable D como el número de diagonales[br]D=len(segmentos)-n[br][br][br]#le preguntamos al usuario ¿Cuántas diagonales tiene la construcción? [br]#almacenamos su respuesta en otra variable que denominamos diagonales[br]diagonales=int(input('¿Cuántas diagonales hay?'))[br]time.sleep(1)[br][br][br]#comparamos ambas variable[br]#resultado correcto, lo indica[br]if diagonales==D:[br] print ('RESPUESTA CORRECTA') [br]#resultado incorrecto, vueve a preguntar[br]#nuevo error, da la respuesta correcta[br]else:[br] diagonales1=int(input('RESPUESTA INCORRECTA. Inténtalo de nuevo. ¿Cuántas diagonales hay? '))[br] if diagonales1==D:[br] print ('RESPUESTA CORRECTA')[br] else:[br] print('RESPUESTA INCORRECTA. RESPUESTA CORRECTA:', D, 'diagonales.')[br] [br][br][br][br]
Construcción 2
import time[br]import math[br][br][br]#definimos una función que dibuja los puntos de la mariposa[br]def Puntos():[br] m=0[br] while m<=2*math.pi:[br] punto=Point(((math.e)**(math.sin(m))-2*math.cos(4*m)+(math.sin((2*m-math.pi)/24))**5)*math.cos(m),((math.e)**(math.sin(m))-2*math.cos(4*m)+(math.sin((2*m-math.pi)/24))**5)*math.sin(m))[br] punto.size=2[br] puntos.append(punto)[br] m=m+math.pi/100[br] time.sleep(0.01)[br] [br] [br] [br]#definimos una función que dibuja los segmentos entre puntos[br]def Segmentos():[br] for i in range(0,len(puntos)-1):[br] segmento=Segment(puntos[i], puntos[i+1])[br] segmento.color='red'[br] segmento. line_thickness=15[br] time.sleep(0.01)[br][br][br][br][br]#función que dibuja puntos en el interior de las alas superiores[br]def Interior1():[br] [br] for i in range(1,20):[br] for j in range(1,20):[br] m=math.atan(j/i)[br] m1=math.pi-m[br] if math.sqrt((i/5)**2+(j/5)**2)< ((math.e)**(math.sin(m))-2*math.cos(4*m)+(math.sin((2*m-math.pi)/24))**5):[br] P=Point(i/5,j/5)[br] P.color=((math.sin(m)),(math.sin(m))**4,0.1)[br] P.size=6[br] time.sleep(0.01)[br] [br] [br] if math.sqrt((i/5)**2+(j/5)**2)< ((math.e)**(math.sin(m1))-2*math.cos(4*m1)+(math.sin((2*m1-math.pi)/24))**5):[br] P=Point(-i/5,j/5)[br] P.color=((math.sin(m1)),(math.sin(m1))**4,0.1)[br] P.size=6[br] time.sleep(0.01)[br][br] [br] [br] [br]#función que dibuja puntos en el interior de las alas inferiores[br]def Interior2():[br] [br] for l in range(1,20):[br] for p in range(-20,0):[br] m2=math.atan(p/l)[br] [br] m3=math.pi-m2[br] if math.sqrt((l/5)**2+(p/5)**2)< ((math.e)**(math.sin(m2))-2*math.cos(4*m2)+(math.sin((2*m2-math.pi)/24))**5):[br] P1=Point(l/5,p/5)[br] P1.color=(abs((math.sin(m2)))**3,abs((math.sin(m2))),0.1)[br] P1.size=6[br] time.sleep(0.01)[br] [br] [br] if math.sqrt((l/5)**2+(p/5)**2)< ((math.e)**(math.sin(m3))-2*math.cos(4*m3)+(math.sin((2*m3-math.pi)/24))**5):[br] P1=Point(-l/5,p/5)[br] P1.color=(abs((math.sin(m3)))**3,abs((math.sin(m3))),0.1)[br] P1.size=6[br] time.sleep(0.01)[br][br][br][br][br]#programa principal [br]#Dibujamos una circunferencia en el fondo[br]P=Point(0,0,is_visible=False)[br]C=Circle(P,30)[br]C.color='black'[br]C.opacity=1[br]time.sleep(0.01)[br][br][br]puntos=[][br]Puntos()[br]Segmentos()[br]Interior1()[br]Interior2()[br]
Construcción 3
import time[br]import math[br][br]def apolonio(A,B,C):[br] [br] [br] a=Distance(B,C)[br] b=Distance(A,C)[br] c=Distance(A,B)[br][br] r1=(-a+b+c)/2[br] r2=(a-b+c)/2[br] r3=(a+b-c)/2[br][br] C1=Circle(A,r1)[br] [br] C1.opacity=0[br] time.sleep(0.01)[br] C2=Circle(B,r2)[br] [br] C2.opacity=0[br] time.sleep(0.01)[br] C3=Circle(C,r3)[br][br] C3.opacity=0[br] time.sleep(0.01)[br] [br]#Dibujamos la circunferencia tangente[br][br]#radio de la circunferencia tangente[br] r=(r1*r2*r3)/(r1*r2+r2*r3+r1*r3+2*math.sqrt(r1*r2*r3*(r1+r2+r3)))[br] [br]#centro de la circunferencia tangente[br] a0=2*(A.x-B.x)[br] [br] a1=2*(A.x-C.x)[br] [br] b0=2*(A.y-B.y)[br] [br] b1=2*(A.y-C.y)[br] [br] c0=2*(r1-r2)[br][br] c1=2*(r1-r3)[br] [br] d0=(A.x**2+A.y**2-r1**2)-(B.x**2+B.y**2-r2**2)[br] [br] d1=(A.x**2+A.y**2-r1**2)-(C.x**2+C.y**2-r3**2)[br] [br] x=(b1*d0-b0*d1-b1*c0*r+b0*c1*r)/(a0*b1-b0*a1)[br][br] y=(-a1*d0+a0*d1+a1*c0*r-a0*c1*r)/(a0*b1-b0*a1)[br] S=Point(x,y,is_visible=False)[br] [br] C4=Circle(S,r)[br] [br] C4.opacity=0[br] time.sleep(0.01)[br] lista.append(S)[br] [br] [br]time.sleep(1)[br][br]def apolonioapolonio(A,B,C,D):[br] apolonio(D,A,B)[br] time.sleep(0.01)[br] apolonio(D,B,C)[br] time.sleep(0.01)[br] apolonio(D,C,A)[br] time.sleep(0.01)[br][br][br]#informamos en que consiste la actividad[br][br][br]#Dibujamos una circunferencia para que el fondo sea blanco[br]P=Point(0,0,is_visible=False)[br]C=Circle(P,30)[br]C.color='white'[br]C.opacity=1[br]time.sleep(0.1)[br][br][br][br]#introducimos las coordenadas de los puntos[br]xA= int(input('Coordenada x de A:'))[br]time.sleep(1)[br]yA= int(input('Coordenada y de A:'))[br]time.sleep(1)[br]xB= int(input('Coordenada x de B:'))[br]time.sleep(1)[br]yB= int(input('Coordenada y de B:'))[br]time.sleep(1)[br]xC= int(input('Coordenada x de C:'))[br]time.sleep(1)[br]yC= int(input('Coordenada y de C:'))[br]time.sleep(1)[br][br]#Dibujamos los puntos y el triángulo y las circunferencias tangentes[br]A=Point(xA,yA,is_visible=False)[br]B=Point(xB,yB,is_visible=False)[br]C=Point(xC,yC,is_visible=False)[br]lista=[A,B,C][br]apolonio(lista[0],lista[1],lista[2])[br][br][br][br]apolonioapolonio(lista[0],lista[1],lista[2],lista[3])[br][br][br]apolonioapolonio(lista[3],lista[0],lista[1],lista[4])[br]apolonioapolonio(lista[3],lista[1],lista[2],lista[5])[br]apolonioapolonio(lista[3],lista[2],lista[0],lista[6])[br][br][br]apolonioapolonio(lista[4],lista[3],lista[0],lista[7])[br]apolonioapolonio(lista[4],lista[0],lista[1],lista[8])[br]apolonioapolonio(lista[4],lista[3],lista[1],lista[9])[br][br][br]apolonioapolonio(lista[5],lista[3],lista[1],lista[10])[br]apolonioapolonio(lista[5],lista[1],lista[2],lista[11])[br]apolonioapolonio(lista[5],lista[2],lista[3],lista[12])[br][br][br]apolonioapolonio(lista[6],lista[3],lista[2],lista[13])[br]apolonioapolonio(lista[6],lista[2],lista[0],lista[14])[br]apolonioapolonio(lista[6],lista[0],lista[3],lista[15])[br]