% représentation des anneaux de Borromée

% Jean-Bernard Roux, collège de Saussure, Genève, octobre 2000

% Données
r=sqrt(3)/3;		% décalage entre les anneaux
t=0:2*pi/60:2*pi;	% angle pour un cercle
u=1;				% rayon du cercle
R=0.2;				% rayon du tube

% Coordonnées
x=u*cos(t);			% de dessus c'est un cercle
y=u*sin(t);
z=-(cos(3*t)./3);	% la hauteur du cercle est un cosinus
					% avec trois périodes pour un tour
					
% Représentation
h(1)=ver3h(x,y+r,z,R);			% 1er cercle
hold on
h(2)=ver3h(x+1/2,y-r/2,z,R);	% 2ème cercle
h(3)=ver3h(x-1/2,y-r/2,z,R);	% 3ème cercle

% Mélange de trois tables de couleurs
cr=[0:127; zeros(1,128); zeros(1,128)];	% rouge
% cg=[zeros(1,128); 0:127; zeros(1,128)];	% vert
cb=[zeros(1,128); zeros(1,128); 0:127];	% bleu
cy=[0:127; 0:127; zeros(1,128)];		% jaune
c = [cr cb cy]/128;					% les trois
a1=get(h(1),'CData');			% on pique les couleurs
a2=get(h(2),'CData');
a3=get(h(3),'CData');
set(h(2),'CData',a2+1);			% on change les couleurs
set(h(3),'CData',a3+2);
caxis([0 3]) % on avertit Matlab du changement d'échelle des couleurs
axis off
axis equal
colormap(c')
shading interp

% NE FONCTIONNE PAS: COULEURS PERDUES...
% enregistrement des images pour une animation 
% j=1;
% for i=0:5:90
% 	view(i,i)
% 	[X,map]=capture;
% 	nom=['000',num2str(j)];
% 	imwrite(X,map,['borro',nom(length(nom)-3:length(nom))],'jpeg');
% 	j=j+1;
% end

rotate3d on
set(gcf,'color','w')
hold off
