Grille d'héxagones et leurs homothétiques avec #pyggb

Grille d'héxagones et leurs homothétiques avec #pyggb
Grille d'héxagones et leurs homothétiques avec #pyggb
from random import* import time #JB Etienne 20-21 janvier 2025 def centregravite(A,B,C,D,E,F): return Point((A.x+B.x+C.x+D.x+E.x+F.x)/6,(A.y+B.y+C.y+D.y+E.y+F.y)/6,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(0,dim-3,2): for i in range(1,dim-3,4): G=centregravite(M[j][i],M[j][i+1],M[j+1][i+2],M[j+2][i+1],M[j+2][i],M[j+1][i-1]) 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+2],G,coef),image(M[j+2][i+1],G,coef),image(M[j+2][i],G,coef) ,image(M[j+1][i-1],G,coef)],color=[(k+1)/5,(k+1)/5,1/(i+j+3)],opacity=1) time.sleep(0.005) G=centregravite(M[j+1][i+2],M[j+1][i+1+2],M[j+1+1][i+2+2],M[j+2+1][i+1+2],M[j+2+1][i+2],M[j+1+1][i-1+2]) for k in range(1,5): coef = 1-k/5 p=Polygon([image(M[j+1][i+2],G,coef),image(M[j+1][i+1+2],G,coef) ,image(M[j+1+1][i+2+2],G,coef),image(M[j+2+1][i+1+2],G,coef),image(M[j+2+1][i+2],G,coef) ,image(M[j+1+1][i-1+2],G,coef)],color=[(k+1)/5,(k+1)/5,1/(i+j+3)],opacity=1) time.sleep(0.005) # Exécution : fond=Polygon(Point(-10,-10,is_visible=False),Point(30,-10,is_visible=False) ,4,color="black",opacity=1) dessin(10,0.05,0.05)