<texit info> author=Roman Putanowicz title=Solution to exercise 6.1.3 </texit> back Solution to exercise 6.1.3 <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> en/teaching/subjects/it/labs/sol_6_1_3.txt Last modified: 2017/10/02 15:54(external edit)