Bonsoir,
Je dois construire le diamant aztèque, j'ai réussi à obtenir la figure souhaitée mais j'aimerais lui ajouter des contours sinon on y vois pas grand chose (voilà ce que cela donne : ). J'aimerais obtenir quelque chose comme ça : https://images.math.cnrs.fr/IMG/png/vide.png.
Pour obtenir le diamant j'ai écris ceci :
Code:def trace_damier(n): assert n%2 == 0, "Veuillez entrer une nombre pair" # les diamants aztèques sont construits à partir de damiers d'ordre pair A1 = np.array([[0,1], [1,0]]) # on part du damier 2x2 while np.shape(A1)[1] != n : # le programme s'arrête au damier nxn L1 = [0, 1] # il n'y a que de lignes différentes dans la matrice d'un damier : L1 et L2 qui altèrnent k = 0 p = int(((np.shape(A1)[0] + 2)/2)-1) while k < p: # on construit les lignes L1 et L2 L1 += [0, 1] k+=1 L2 = L1[::-1] L3 = np.concatenate([np.array([L1]), np.array([L2])]) # on les concatène pour obtenir les deux premières lignes de la matrice L4 = L3.copy() for k in range(p): L3 = np.concatenate([L3, L4]) # on cacatène les deux premières lignes le bon nombre de fois pour obtenir la matrice B = np.array(L3) A1 = B return B def trace_diamant(n): B = trace_damier(n) for k in range(int(n/2)-1): Lk1 = B[k] Lk2 = Lk1[::-1] p = n-(n/2)-k-1 print(p) for i in range(int(p)): Lk1[i], Lk2[i] = 1, 1 B[k] = Lk1 B[n - k - 1] = Lk2 extent = 0,n,0,n plt.figure() plt.axis() plt.imshow(B , cmap = 'gray', extent = extent) plt.show()
Je suis conscient que le code n'est pas optimisé mais ne dites à propos de cela, je cherche juste à savoir comment mettre des contours au diamant aztèque.
je vous remercie pour le temps que vous m'accordez.
Bonne soirée.
-----