Un pavage de Truchet étendu généré avec #pyggb variante

[size=150][url=https://geogebra.org/python/index.html?name=Truchet+%C3%A9tendu+variante&code=eJztWc1u4kgQvvspagetZKAh2DMrrSL5kB8yWYkDyf5comhkQ0N617Stts3g8z7Mal9j98Wm2t0GGxsGAhkxEi0SU39d5fZX1abLaIBlX%2BDH7tkfkPidQ%2BjO3SkFM0hgFsRs0oQxhd9EMnqhMfz%2F93%2F%2FxpSPky784Qrm8piCO6cj1InAZ1OOlzDw02nAXZ9GOKPrSxs3DpigUdeYiGAGwuVjvLBZGIi4ZagrxGxGDYN7odMz0HAS8FHMAq6mLcwKYznjJBAzeUWSwsTFr%2F%2BgbtEbgDGmEzSPYmoOyQN5JLx5aQAOAY4OwmxeWL2MF2oe47FpEbuZMQfO03P2Zb5wHrqLzrC7UGSKZIpkqtS6bhjisphDZYbBAQPG5YRTitPljsvKgfSFU7bZBYcW%2BmibHavZaoUt0crDI%2Bgjl6d1chZ9mrOIeT517lw%2Fok0dee7lYY1%2BVLSgcSI4DIyatfYEi9TadqHPgfJYKDJBYbaeMJDLHsobwIeqlhktPXOgb3RtBXzKUYTBr5YhAudXOp3h5ObgiT0T%2FNe2npsyHEQO2BCnIV7RTZwwyZFgyqCWAN5sAmOXI%2BYojDAKiJJQhigYTQRMXYlWQLzmYsYnK%2FFYBCy%2BVOiILctckFTHdYUYUE8FeYWVRbZa20zreqXVtrbo3ZT18G%2BT5m3R7xa9fmHGXvenLb7v1nxL7U26H9dn3RLBfSnSbbMOLKRV8vXJHbkmmNlaYi8l9%2BQjuV1JQikZqkw3BxYZBX4gnHeen9B3JAjdEYtTxyI%2B4%2FRT%2FMJGf2G9iZyeNn5fNLb3Mx5THyN%2B6lgq3TPSXpIDK8%2Bem%2FwWuoLOqYiouWRojau8ciCvPbBUaHItlqHlkaXU94PPh8aWJ56llHMSC5gGuH0G%2BFsD%2FJ70yVUtwO8Q4DdfBfiuSNgA8eMAaQXy63VM3%2B6M6WNk20ZESypj7bJH%2FOnK3erQTQJ0FtnnbeLkt4kTy6JjbhVvnFYqqRTQz9vFyW8XJ%2FQ%2BdMBWsUO%2BaWS%2BFtdGwwvEOBH4s1Ji2zu%2F659QEW%2B8Bbh3reGN3SClTwEadUV9E6OSEbrK65k258WeGaohfS7Xp1Ouvw9IKyRWK3bltWQd0q%2BFa%2FH9wju%2FSH%2FzGtx4szfpxnFfpeu285rau5mRQ3nJ2LX27p6qq9%2BgCs7n%2Bvut628Rzsc9XjkUzrUleEWukK1LcOUt%2BqvIPhC1CrgNuEUuHnjgKUnW4iljGls5KDTzloU8yU9XJ%2FnFToYULepFcrgYa6Wjko%2FG1A881wd8dmU%2BMtBOtVnygSEiuNLmj7bj9MpOtNh1HKsqwJEf8FdkFKFWa7E8Mi0J69W3etZb3T6edTkpCWVfrBv5lIZmr9tD8OhRO8M6E9sp1QH9hTzoGiVZz6dGQQ%2FZjMNn8R4awIOZhy21ZdNnQ8PvYtk6igyOpj%2BXTLU%2BHrkhIaHLkSS5AnaCGBUwvPrlEZtS2JIaF7CuikbHJvipdLyIkvL2BvEHo5AbOmU%2Bv7AYc6aayJgDGv%2B4dvr3owleMsX7xHNBPCachS4T8EMTLrM4S42uHuGIdPV05e9NRrDplVHVx7hui23Cgq29l22nbGyZnLBX2tqSsbNx6YYR8fvYlh2jMcNG6av8ysXaxxS3qKLxtsWS4wuH6dtl&autorun=false]LIEN / LINK[/url][/size]
[code][br]# 12/12/2024[br]# Un pavage (ou motif) de Truchet étendu. Variante avec des lignes polygonales[br]# aléatoires.[br]from random import*[br]import time[br][br]nbp=0[br][br]# fonction ligne polygonale déformée de façon aléatoire [br]def liste(P,Q,R,n):[br] r = random()/10[br] p = randint(1,2)[br] L=[][br] vx=Q.x-P.x[br] vy=Q.y-P.y[br] L.append(P)[br] for i in range(1,n):[br] L.append(Point(P.x+i/n * vx+(-1)**p*r*random(),P.y+i/n * vy+(-1)**p*r*random(),is_visible=False))[br] L.append(Q)[br] L.append(R)[br] return L[br][br][br]# fonction ligne brisée . En entrée une liste L de points.[br]def ligneb(L):[br] for i in range(len(L)-1):[br] s =Segment(L[i],L[i+1])[br][br]# les 2 types de tuiles [br]# avec du bleu dans le coin supérieur gauche et le coin inférieur droit: [br]def t11(x,y):[br] A = Point(x,y,is_visible = False)[br] B = Point(x+1,y,is_visible = False)[br] C = Point(x+1,y+1,is_visible = False)[br] D = Point(x,y+1,is_visible = False)[br] E = Point(x+0.5,y,is_visible = False)[br] F = Point(x+1,y+0.5,is_visible = False)[br] G = Point(x+0.5,y+1,is_visible = False)[br] H = Point(x,y+0.5,is_visible = False)[br] L1 = liste(E,F,B,nbp)[br] L2 = liste(H,G,D,nbp)[br] p2 = Polygon(L1,color="blue",opacity=1,line_thickness=0)[br] p3 = Polygon(L2,color="blue",opacity=1,line_thickness=0)[br] del L1[-1][br] del L2[-1][br] L1.append(C)[br] L2.reverse()[br] L2.append(A)[br] L= L2+L1[br] p1 = Polygon(L,color="yellow",opacity=1,line_thickness=0)[br] del L1[-1][br] del L2[-1][br] ligneb(L1)[br] ligneb(L2)[br][br]def t12(x,y):[br] A = Point(x,y,is_visible = False)[br] B = Point(x+1,y,is_visible = False)[br] C = Point(x+1,y+1,is_visible = False)[br] D = Point(x,y+1,is_visible = False)[br] E = Point(x+0.5,y,is_visible = False)[br] F = Point(x+1,y+0.5,is_visible = False)[br] G = Point(x+0.5,y+1,is_visible = False)[br] H = Point(x,y+0.5,is_visible = False)[br] L1 = liste(H,E,A,nbp)[br] L2 = liste(F,G,C,nbp)[br] p2 = Polygon(L1,color="yellow",opacity=1,line_thickness=0)[br] p3 = Polygon(L2,color="yellow",opacity=1,line_thickness=0)[br] del L1[-1][br] del L2[-1][br] L1.append(B)[br] L2.append(D)[br] L= L2+L1[br] p1 = Polygon(L,color="blue",opacity=1,line_thickness=0)[br] del L1[-1][br] del L2[-1][br] ligneb(L1)[br] ligneb(L2) [br] [br]# les 2 types de tuiles [br]# avec du jaune dans le coin supérieur gauche et le coin inférieur droit: [br][br]def t21(x,y):[br] A = Point(x,y,is_visible = False)[br] B = Point(x+1,y,is_visible = False)[br] C = Point(x+1,y+1,is_visible = False)[br] D = Point(x,y+1,is_visible = False)[br] E = Point(x+0.5,y,is_visible = False)[br] F = Point(x+1,y+0.5,is_visible = False)[br] G = Point(x+0.5,y+1,is_visible = False)[br] H = Point(x,y+0.5,is_visible = False)[br] L1 = liste(E,F,B,nbp)[br] L2 = liste(H,G,D,nbp)[br] p2 = Polygon(L1,color="yellow",opacity=1,line_thickness=0)[br] p3 = Polygon(L2,color="yellow",opacity=1,line_thickness=0)[br] del L1[-1][br] del L2[-1][br] L1.append(C)[br] L2.reverse()[br] L2.append(A)[br] L= L2+L1[br] p1 = Polygon(L,color="blue",opacity=1,line_thickness=0)[br] del L1[-1][br] del L2[-1][br] ligneb(L1)[br] ligneb(L2) [br] [br]def t22(x,y):[br] A = Point(x,y,is_visible = False)[br] B = Point(x+1,y,is_visible = False)[br] C = Point(x+1,y+1,is_visible = False)[br] D = Point(x,y+1,is_visible = False)[br] E = Point(x+0.5,y,is_visible = False)[br] F = Point(x+1,y+0.5,is_visible = False)[br] G = Point(x+0.5,y+1,is_visible = False)[br] H = Point(x,y+0.5,is_visible = False)[br] L1 = liste(H,E,A,nbp)[br] L2 = liste(F,G,C,nbp)[br] p2 = Polygon(L1,color="blue",opacity=1,line_thickness=0)[br] p3 = Polygon(L2,color="blue",opacity=1,line_thickness=0)[br] del L1[-1][br] del L2[-1][br] L1.append(B)[br] L2.append(D)[br] L= L2+L1[br] p1 = Polygon(L,color="yellow",opacity=1,line_thickness=0) [br] del L1[-1][br] del L2[-1][br] ligneb(L1)[br] ligneb(L2) [br]#bordure[br][br]def b11(x,y):[br] A = Point(x,y,is_visible = False)[br] B = Point(x+1,y,is_visible = False)[br] C = Point(x+1,y+1,is_visible = False)[br] D = Point(x,y+1,is_visible = False)[br] E = Point(x+0.5,y,is_visible = False)[br] F = Point(x+1,y+0.5,is_visible = False)[br] G = Point(x+0.5,y+1,is_visible = False)[br] H = Point(x,y+0.5,is_visible = False)[br] L1 = liste(E,F,B,nbp)[br] L2 = liste(H,G,D,nbp)[br] #p2 = Polygon(L1,color="blue",opacity=1,line_thickness=0)[br] p3 = Polygon(L2,color="yellow",opacity=1,line_thickness=0)[br] #del L1[-1][br] del L2[-1][br] ligneb(L2)[br] #L1.append(C)[br] L2.append(C)[br] L2.append(B)[br] L2.append(A)[br] [br] #L= L2+L1[br] p1 = Polygon(L2,color="blue",opacity=1,line_thickness=0)[br] [br]def b12(x,y):[br] A = Point(x,y,is_visible = False)[br] B = Point(x+1,y,is_visible = False)[br] C = Point(x+1,y+1,is_visible = False)[br] D = Point(x,y+1,is_visible = False)[br] E = Point(x+0.5,y,is_visible = False)[br] F = Point(x+1,y+0.5,is_visible = False)[br] G = Point(x+0.5,y+1,is_visible = False)[br] H = Point(x,y+0.5,is_visible = False)[br] L1 = liste(H,E,A,nbp)[br] L2 = liste(F,G,C,nbp)[br] #p2 = Polygon(L1,color="blue",opacity=1,line_thickness=0)[br] p3 = Polygon(L2,color="yellow",opacity=1,line_thickness=0)[br] #del L1[-1][br] del L2[-1][br] ligneb(L2) [br] L2.append(D)[br] L2.append(A)[br] L2.append(B)[br] p1 = Polygon(L2,color="blue",opacity=1,line_thickness=0) [br] [br]def b21(x,y):[br] A = Point(x,y,is_visible = False)[br] B = Point(x+1,y,is_visible = False)[br] C = Point(x+1,y+1,is_visible = False)[br] D = Point(x,y+1,is_visible = False)[br] E = Point(x+0.5,y,is_visible = False)[br] F = Point(x+1,y+0.5,is_visible = False)[br] G = Point(x+0.5,y+1,is_visible = False)[br] H = Point(x,y+0.5,is_visible = False)[br] L1 = liste(E,F,B,nbp)[br] #L2 = liste(H,G,D,nbp)[br] p2 = Polygon(L1,color="yellow",opacity=1,line_thickness=0)[br] #p3 = Polygon(L2,color="yellow",opacity=1,line_thickness=0)[br] del L1[-1][br] [br] ligneb(L1)[br] #L1.append(C)[br] L1.append(C)[br] L1.append(D)[br] L1.append(A)[br] [br] #L= L2+L1[br] p1 = Polygon(L1,color="blue",opacity=1,line_thickness=0) [br] [br]def b22(x,y):[br] A = Point(x,y,is_visible = False)[br] B = Point(x+1,y,is_visible = False)[br] C = Point(x+1,y+1,is_visible = False)[br] D = Point(x,y+1,is_visible = False)[br] E = Point(x+0.5,y,is_visible = False)[br] F = Point(x+1,y+0.5,is_visible = False)[br] G = Point(x+0.5,y+1,is_visible = False)[br] H = Point(x,y+0.5,is_visible = False)[br] L1 = liste(H,E,A,nbp)[br] #L2 = liste(F,G,C,nbp)[br] p2 = Polygon(L1,color="yellow",opacity=1,line_thickness=0)[br] #p3 = Polygon(L2,color="yellow",opacity=1,line_thickness=0)[br] #del L1[-1][br] del L1[-1][br] ligneb(L1) [br] L1.append(B)[br] L1.append(C)[br] L1.append(D)[br] p1 = Polygon(L1,color="blue",opacity=1,line_thickness=0) [br] [br] [br]# Dessin du motif [br] [br]def dessin(n):[br] for y in range(n):[br] for x in range(n):[br] a = randint(1,2)[br] #global nbp[br] #nbp = x[br] if (x+y)%2==0:[br] if a==1:[br] t11(x,y)[br] else:[br] t12(x,y)[br] else:[br] if a==1:[br] t21(x,y)[br] else:[br] t22(x,y)[br] time.sleep(0.01) [br] [br] [br][br]################### Exécution ##########################[br]nbp = 3 # nombre de points des lignes polygonales/brisées[br]n = 8 # nombre de lignes et de colonnes, nombre entier PAIR[br][br][br]fond = Polygon(Point(-2,-2,is_visible=False),Point(n+2,-2,is_visible=False),4[br],opacity=1,color="white",line_thickness=0)[br][br]dessin(n)[br][br]#bordure( bug pour n impair !) :[br][br][br]for i in range(0,n,2):[br] b11(i,-1)[br] time.sleep(0.01) [br]for i in range(1,n,2):[br] b12(i,-1)[br] time.sleep(0.01) [br]for i in range(-1,n,2):[br] b11(n,i)[br] time.sleep(0.01) [br]for i in range(-1,n,2):[br] b12(-1,i)[br] time.sleep(0.01) [br]for i in range(0,n,2):[br] b21(-1,i)[br] time.sleep(0.01) [br]for i in range(-1,n,2):[br] b21(i,n)[br] time.sleep(0.01) [br]for i in range(0,n,2):[br] b22(i,n)[br] time.sleep(0.01) [br]for i in range(0,n+1,2):[br] b22(n,i)[br] time.sleep(0.01) [br][br][br][br][br][/code]

Information: Un pavage de Truchet étendu généré avec #pyggb variante