2016-03-07 152 views
0
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),但它不能移动颜色。如何在换档过程中使同心圆停留一段时间?真的很感谢任何建议。

+0

不太确定你在问什么。你想改变循环中的'x'坐标吗?试试'plot(x + i,y)'。每一步之后你想要暂停吗?在循环结束时尝试'暂停(1)'。 – zeeMonkeez

+0

感谢您的帮助。它仍然不起作用。我希望整个图形和坐标向右移动。该图表在换班期间将停止一段时间。 – joe999

+0

只是为了确保...您想要在上面的代码片段中绘制所有圆圈,然后沿着x轴将每个步骤的暂停移动圆圈? – zeeMonkeez

回答

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 
+0

真的很感谢您的帮助!它工作得很好! – joe999