#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Fri Dec 15 23:36:50 2017 @author: fh Simulation d'aglomération de particules """ def matrix_rand(L,C,d=0.10): from numpy import zeros from time import sleep from random import random as rand M=zeros([L,C],dtype=bool) for i in range(L): for j in range(C): r=rand() v=rabs(Fx) and Fy>0 and (not M[Nl,c ]):#Au nord. #Centre->Nord. M[l,c],M[Nl,c ]=False,True elif abs(Fy)>abs(Fx) and Fy<0 and (not M[Sl,c ]):#Au sud. #Centre->Sud. M[l,c],M[Sl,c ]=False,True elif abs(Fx)>abs(Fy) and Fx>0 and (not M[l ,Ec]):#A l'est. #Centre->Est. M[l,c],M[l ,Ec]=False,True elif abs(Fx)>abs(Fy) and Fx<0 and (not M[l ,Oc]):#A l'ouest. #Centre->Ouest. M[l,c],M[l ,Oc]=False,True return M def aglo_test(): M=matrix_rand(20,20) M1=M for t in range(1): M1=aglo(M1) print(M*1) print(M1*1) print("Sommes :",M.sum()," et ",M1.sum(),".") print("M=M1 :\n",(M==M1)*1) print("Densité : ",M.sum()/M.size) from matplotlib.pyplot import imshow,figure,pause,title figure("Graphe") for t in range(31): M=matrix_rand(200,200,0.8) imshow(M,cmap='gray',interpolation='nearest') ttr="Itération :{:d}".format(t) ttr+="\nDensité : {:03.1f}%".format(M.sum()*100/M.size) title(ttr) pause(0.99)