Grilles de quadrilatères et leurs homothétiques. Monochrome

Version monochrome
Version monochrome
from random import* import time #JB Etienne 21 janvier 2025 def centregravite(A,B,C,D): return Point((A.x+B.x+C.x+D.x)/4,(A.y+B.y+C.y+D.y)/4,is_visible=False) # image du point M par l'homothétie de centre O et de rapport k: def image(M,O,k): return Point(k*(M.x-O.x)+O.x,k*(M.y-O.y)+O.y,is_visible=False) # On génère une grille de points que l'on stocke dans une liste de listes M def dessin(dim,cx,cy): M=[] for y in range(0,dim,1): L=[] for x in range(0,dim,1): P=Point(x+uniform(-cx,cx),y+uniform(-cy,cy),is_visible=False) L.append(P) M.append(L) for j in range(dim-1): for i in range(dim-1): G=centregravite(M[j][i],M[j][i+1],M[j+1][i+1],M[j+1][i]) for k in range(1,5): coef = 1-k/5 p=Polygon([image(M[j][i],G,coef),image(M[j][i+1],G,coef) ,image(M[j+1][i+1],G,coef),image(M[j+1][i],G,coef)],opacity=1,color=[(k+1)/5,(k+1)/5,(k+1)/5]) time.sleep(0.005) #return M # Exécution : fond=Polygon(Point(-10,-10,is_visible=False),Point(10,-10,is_visible=False) ,4,color="black",opacity=1) dessin(5,0.1,0.1)