移动同心圆并将坐标向右移动

时间:2016-03-07 20:03:41

标签: matlab plot geometry

clc
n=10;
th=(0:360)*pi/180;
h=axes('Position',[0.25,0.25,0.25,0.25]);
hold on
cc='bmmyyyggwr';

for i=1:n

    x=(n+1-i)*cos(th);
    y=(n+1-i)*sin(th);

    plot(x,y);   
    fill(x,y,cc(i))
    axis off
    axis equal

end   

我绘制了10个同心圆。我希望同心圆和坐标沿着X轴向右移动,并在移动过程中保持一段时间。

我使用了图(x + 20,y),但它无法移动颜色。在移动过程中如何使同心圆停留一段时间?真的很感激任何建议。

1 个答案:

答案 0 :(得分:1)

这可能会做你想要的。 请注意,我们正在设置xlimylim,否则圈子似乎根本不会移动。在第一个循环中,我们绘制圆圈,在第二个循环中,我们移动它们。

clf
n=10;
th=(0:360)*pi/180;
h=axes('Position',[0.25,0.25,0.25,0.25]);
hold on
cc='bmmyyyggwr';
phh = gobjects(2, n);
xlim([-10, 30])
ylim([-10, 10])
axis off
axis equal
for i=1:n

    x=(n+1-i)*cos(th);
    y=(n+1-i)*sin(th);

    phh(1, i)=plot(x,y);   
    phh(2, i)=fill(x,y,cc(i));    
end   
for j=1:n
    for i=1:n
        phh(1, i).XData = phh(1, i).XData + 1;
        phh(2, i).XData = phh(2, i).XData + 1;
    end
    drawnow
    pause(1);
end