1

我想制作一个图,然后将 xy 轴旋转一个角度;然后在旋转轴上再次制作相同的图,然后再次旋转轴以获得下一个类似的图

像这样的东西:

hold all;

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

有什么方法可以实现我的建议吗?

4

2 回答 2

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
于 2012-11-19T13:35:51.033 回答
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 每一步都不同。

希望这是您正在寻找的。

于 2012-11-19T13:36:33.957 回答