有没有办法制作一个在每次迭代时旋转轴的迭代图

时间:2012-11-19 13:27:03

标签: matlab for-loop rotation plot axes

我想制作一个图,然后将x-y轴旋转一个角度; 然后在旋转的轴上再次绘制相同的绘图,然后再次旋转轴以用于下一个类似的绘图

这样的事情:

hold all;

for k= 0:1:10
    % rotate-axis-about-origin(angle * k)
    plot(XY(:,1),XY(:,2));
end

有没有办法实现我的建议?

2 个答案:

答案 0 :(得分:1)

您可以通过camroll在每个步骤滚动相机来完成此操作。这是一个用于绘制正弦的玩具工作示例:

hold all

x = -3:0.01:3;
y = sin(x);
angle = 1; % in degrees
for k = 1:90 % 90 steps
    plot(x,y, 'k');
    camroll(angle); % roll 'angle' degrees at each step
    drawnow
    pause(0.05)
end

答案 1 :(得分:1)

在循环内使用旋转矩阵:

hold all;

% test vector and matrix
x = (1:10)';
y = x.^2;    
XY0 = [x y];

angle = 1/180*pi;   % 1 degree

for k= 0:1:10
    % rotate-axis-about-origin(angle * k)
    rot = [cos(angle*k) sin(angle*k);-sin(angle*k) cos(angle*k)];
    XY = XY0*rot;
    plot(XY(:,1),XY(:,2));
end

XY0是原始矩阵,XY每一步都会变化。

希望这就是你要找的东西。