2016-03-07 93 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