function TruchetMono(nc,nl,couleur1,couleur2,couleur3)
%TRUCHETMONO(NC,NL,COULEUR1,COULEUR2,COULEUR3) représente un pavage de Truchet
%
% NC est le nombre de lignes et NL, le nombre de colonnes
% COULEUR1, 2 et 3 sont les couleurs des surfaces et du trait,
% ces paramètres sont optionnels.
% EXEMPLE: TRUCHETMONO(12,12).

% jbr, 3-3- 97

t=pi/12:pi/12:2*pi;
x=.5*cos(t);
y=.5*sin(t);
n=length(x);
if nargin==2,
	couleur1=rand(1,3);
	couleur2=rand(1,3);
	couleur3='w';
end

x1=[x(n) x(1:n/4)]; y1=[y(n) y(1:n/4)];
x2=1+x(n/2:3*n/4); y2=1+y(n/2:3*n/4);
x3=1+x(n/4:n/2); y3=y(n/4:n/2);
x4=x(3*n/4:n); y4=1+y(3*n/4:n);

cla
hold on
axis([0 nl 0 nc])
axis equal
axis off
figure(gcf)

for i=1:nc
	for j=1:nl
		if rem(i+j,2)
			if fix(rand*2)
				fill([x1 0]+j-1,[y1 0]+i-1,couleur1,'EdgeColor',couleur1)
				fill([x2 1]+j-1,[y2 1]+i-1,couleur1,'EdgeColor',couleur1)
				fill([x1 0 x2 1]+j-1,[y1 1 y2 0]+i-1,couleur2,'EdgeColor',couleur2)
				plot(x1+j-1,y1+i-1,couleur3)
				plot(x2+j-1,y2+i-1,couleur3)
			else
				fill([x3 1]+j-1,[y3 0]+i-1,couleur2,'EdgeColor',couleur2)
				fill([x4 0]+j-1,[y4 1]+i-1,couleur2,'EdgeColor',couleur2)
				fill([x3 0 x4 1]+j-1,[y3 0 y4 1]+i-1,couleur1,'EdgeColor',couleur1)
				plot(x3+j-1,y3+i-1,couleur3)
				plot(x4+j-1,y4+i-1,couleur3)
			end			
		else
			if fix(rand*2)
				fill([x1 0]+j-1,[y1 0]+i-1,couleur2,'EdgeColor',couleur2)
				fill([x2 1]+j-1,[y2 1]+i-1,couleur2,'EdgeColor',couleur2)
				fill([x1 0 x2 1]+j-1,[y1 1 y2 0]+i-1,couleur1,'EdgeColor',couleur1)
				plot(x1+j-1,y1+i-1,couleur3)
				plot(x2+j-1,y2+i-1,couleur3)
			else
				fill([x3 1]+j-1,[y3 0]+i-1,couleur1,'EdgeColor',couleur1)
				fill([x4 0]+j-1,[y4 1]+i-1,couleur1,'EdgeColor',couleur1)
				fill([x3 0 x4 1]+j-1,[y3 0 y4 1]+i-1,couleur2,'EdgeColor',couleur2)
				plot(x3+j-1,y3+i-1,couleur3)
				plot(x4+j-1,y4+i-1,couleur3)
			end
		end
	end
end

plot([0 nl nl 0 0],[0 0 nc nc 0],couleur3)



