function khosrow(A,B,couleurBord)
global K a b cb
% representation d'un tapis persan de 400x512.
% Par exemple: 
% khosrow(3,4,15);colormap(prism)
% khosrow(3,7,255);colormap(prism)

a=A;
b=B;
cb=couleurBord;
gauche=1;
droite=1025; % 513
haut=1;
bas=801;	% 401
K=zeros(bas,droite);

K(haut,gauche:droite)=couleurBord;
K(bas,gauche:droite)=couleurBord;
K(haut:bas,gauche)=couleurBord;
K(haut:bas,droite)=couleurBord;
determineCouleur(gauche,droite,haut,bas);
image(K)
axis off

function determineCouleur(gauche,droite,haut,bas)
global K a b cb
if gauche < (droite-1)
    c=f(gauche,droite,haut,bas);
    colMilieu=fix((gauche+droite)/2);
    ligMilieu=fix((haut+bas)/2);
    K(ligMilieu,gauche+1:droite-1)=c*ones(size(K(ligMilieu,gauche+1:droite-1)));
    K(haut+1:bas-1,colMilieu)=c*ones(size(K(haut+1:bas-1,colMilieu)));
    determineCouleur(gauche,colMilieu,haut,ligMilieu);
    determineCouleur(colMilieu,droite,haut,ligMilieu);
    determineCouleur(gauche,colMilieu,ligMilieu,bas);
    determineCouleur(colMilieu,droite,ligMilieu,bas);
end

function c=f(gauche,droite,haut,bas)
global K a b cb
p=K(haut,gauche)+K(haut,droite)+K(bas,gauche)+K(bas,droite);
c=rem(p/b+a,cb);
