<texit info> author=Roman Putanowicz title=Rozwi�zanie �wiczenia 2.1.1

</texit> back

Rozwiązanie ćwiczenia 2.1.1

W tym ćwiczeniu można by zamiast funkcji line zastosować funkcję patch do narysowania wypełnionego prostokąta. Niestety w Octave (wersja 3.2), dla której testowałem rozwiazanie, jest błąd i nie działa funkcja set z argumentami xdata i ydata.

<sxh c> function rotfigure(h, angle)

c = cos(angle);
s = sin(angle);
X = get(h,'xdata');
Y = get(h,'ydata');
Xp = c*X - s*Y;
Yp = s*X + c*Y;
set(h,'xdata',Xp);
set(h,'ydata',Yp);

end%function

rectangle = [1,4,4,1,1;

           1,1,3,3,1];

axis([-5,5,-5,5], 'equal'); h = line(rectangle(1,:), rectangle(2,:)) N = 36; dfi = 2*pi/N; for i=1:N

rotfigure(h, dfi);
drawnow();
sleep(0.5);
name=sprintf('rotshape%03d.png',i);
disp(name);

end%for pause() </sxh>

<texit> \begin{lstlisting} function rotfigure(h, angle)

c = cos(angle);
s = sin(angle);
X = get(h,'xdata');
Y = get(h,'ydata');
Xp = c*X - s*Y;
Yp = s*X + c*Y;
set(h,'xdata',Xp);
set(h,'ydata',Yp);

end%function

rectangle = [1,4,4,1,1;

           1,1,3,3,1];

axis([-5,5,-5,5], 'equal'); h = line(rectangle(1,:), rectangle(2,:)) N = 36; dfi = 2*pi/N; for i=1:N

rotfigure(h, dfi);
drawnow();
sleep(0.5);
name=sprintf('rotshape%03d.png',i);
disp(name);

end%for pause() \end{lstlisting} </texit>

  • pl/teaching/subjects/math2/labs/sol_2_1_1.txt
  • Last modified: 2017/10/02 15:37
  • (external edit)