Figure 1 : cas simple où l’on positionne le début du second carré à 50% de la longueur initiale. Figure 2 : cas simple à 25% de la longueur initiale avec utilisation des relations trigonométriques. Figure 3 : cas général avec a variable.
from math import * from turtle import * def carre(l): for i in range(4): forward(l) right(90) def figure(l,n): penup() goto(-50,50) pendown() for i in range(n): carre(l) forward(l*0.5) right(45) l=sqrt((l**2)/2) def figure2(l,n): penup() goto(-50,50) pendown() for i in range(n): carre(l) forward(l*0.25) angle=atan(1/3)*180/pi right(angle) l=sqrt((0.75*l)**2+(0.25*l)**2) def figure3(l,n,a): penup() goto(-50,50) pendown() for i in range(n): carre(l) forward(l*a) angle=atan(a/(1-a))*180/pi right(angle) l=sqrt(((1-a)*l)**2+(a*l)**2) def variante(l,a): penup() x=-160+((320-l)/2) y=111-((222-l)/2) goto(x,y) pendown() color(0,255,255) #color(255,166,163) while l>5: color(l,255-l,255-l) carre(l) forward(l*a) angle=atan(a/(1-a))*180/pi right(angle) l=sqrt(((1-a)*l)**2+(a*l)**2)