我想制作一个图,然后将 xy 轴旋转一个角度;然后在旋转轴上再次制作相同的图,然后再次旋转轴以获得下一个类似的图
像这样的东西:
hold all;
for k= 0:1:10
% rotate-axis-about-origin(angle * k)
plot(XY(:,1),XY(:,2));
end
有什么方法可以实现我的建议吗?
您可以通过在每一步滚动相机来做到这一点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
在循环内使用旋转矩阵:
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 每一步都不同。
希望这是您正在寻找的。