Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function f(n, phi)
- h = Rose(n);
- [x, y] = Get(h);
- axis([-1, 10, -1, 10]);
- for k = 0:fix(100/(phi*10))
- [x1, y1] = Rotate(x, y, -phi*k);
- [x1, y1] = Move(x1, y1, phi*k, 0);
- Set(h, x1, y1);
- pause(0.1);
- end
- end
- function [h]=Rose(n)
- if mod(n,2)==0
- n=n/2;
- end
- t = linspace(0, 2*pi, 200);
- x = cos(n*t).*cos(t);
- y = cos(n*t).*sin(t);
- h=line(x, y);
- end
- function [x, y] = Get(h)
- x = get(h, 'xdata');
- y = get(h, 'ydata');
- end
- function Set(h, x, y)
- set(h, 'xdata', x);
- set(h, 'ydata', y);
- end
- function [x, y] = Rotate(x, y, phi)
- A = [cos(phi), -sin(phi);sin(phi),cos(phi)];
- xy = [x; y];
- xy = A*xy;
- x = xy(1,:)';
- y = xy(2,:)';
- end
- function [x, y] = Move(x, y, dx, dy)
- x = x+dx;
- y = y+dy;
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement