<texit info> author=Roman Putanowicz title=Solution to exercise 6.1.3
</texit> back
<sxh c> function rotatecolor(R,a,n)
fi = linspace(0,2*pi-2*pi/n,n); x = R*cos(fi); y = R*sin(fi); h = zeros(n); for i=1:n h(i) = square(x(i),y(i),a); endfor drawnow() circulate(h, n);
endfunction
function circulate(h, N)
n = length(h); i = 1; k = 0; while k < N c = get(h(i), "facecolor"); set(h(i),"facecolor","red"); drawnow() fname = sprintf("frame%03d.png", i); print(fname, "-dpng","-S300,300"); set(h(i),"facecolor",c); i = mod(i+1, n+1); if i == 0 i = 1; endif k = k+1; end
endfunction
function h = square(x,y,a)
a2 = a/2; x = [x-a2,x+a2,x+a2, x-a2, x-a2]; y = [y-a2,y-a2,y+a2, y+a2, y-a2]; h = patch(x,y,"yellow");
endfunction </sxh>
<texit> \begin{lstlisting} function rotatecolor(R,a,n)
fi = linspace(0,2*pi-2*pi/n,n); x = R*cos(fi); y = R*sin(fi); h = zeros(n); for i=1:n h(i) = square(x(i),y(i),a); endfor drawnow() circulate(h, n);
endfunction
function circulate(h, N)
n = length(h); i = 1; k = 0; while k < N c = get(h(i), "facecolor"); set(h(i),"facecolor","red"); drawnow() fname = sprintf("frame%03d.png", i); print(fname, "-dpng","-S300,300"); set(h(i),"facecolor",c); i = mod(i+1, n+1); if i == 0 i = 1; endif k = k+1; end
endfunction
function h = square(x,y,a)
a2 = a/2; x = [x-a2,x+a2,x+a2, x-a2, x-a2]; y = [y-a2,y-a2,y+a2, y+a2, y-a2]; h = patch(x,y,"yellow");
endfunction \end{lstlisting} </texit>