# 3. Pour aller plus loin from math import sqrt def prochain_point(u, v) : return [u[0] + (v[0] - u[0]) / 4, u[1] + (v[1] - u[1]) / 4] def carre(n) : # n : nb étapes avec carré de côté 300 speed(0) color("black") up() clear() goto(-200, -200) down() for compteur in range(n) : setheading(18.43494882 * compteur) poly_reg(4, 300 * (sqrt(10)/4)**compteur) forward((300 * (sqrt(10) / 4)**compteur) / 4) up() def trace_figure(n) : carre(n) mainloop() def fourmi(n) : # n : nb étapes avec carré de côté 300 carre(n) longueur = 0 u = [-200, -200] v = [-125, -200] goto(-200, -200) down() color("red") for compteur in range(n) : setheading(18.43494882 * compteur) forward((300 * (sqrt(10) / 4)**compteur) / 4) longueur +=(300 * (sqrt(10) / 4)**compteur) / 4 u, v = v, prochain_point(u, v) write(longueur) up() mainloop()