Matlab不使用hold on怎麼把plot合在一起?
想畫一下汽車轉彎4個輪胎的軌跡動畫(俯視圖),車身用線段圍成的長方形表示。循環過程中,輪胎的軌跡需要用hold on,但是車身不能hold on,所以一個圖裡面畫不出來(循環過程中有hold off之前的軌跡就沒了)。可以把軌跡和車身運動分別畫出來,但是不知道怎麼把這兩個圖合成一個。網上查的都說是hold on,但是這裡明顯不行。有沒有別的語句實現呢?
1) 第一次畫車的時候,把handle存下來,
比如我用一個星來表示車&>&> p = plot(0,0,"*");
&>&> hold on
3) 之後的畫圖過程中,每次循環的時候只畫軌跡,但是用handle更改車的位置。例如:
p.XData = p.XData + 1;
figure
p = plot(0,0,"*");
for ct = 1:10
p.XData = p.XData+1; % Change the car location
% Before R2014b, replace the above line with the following
% xdata = get(p, "XData");
% set(p, "XData", xdata+1);
hold on
plot(ct-2,0,"b."); % Draw the trail
axis([-10 10 -10 10])
pause(0.1)
end
hold off
你只要改變現有對象(車身)的數據或者變換就行,沒有必要新建對象
Matlab畫動畫的正確打開方式之一是用hgtransform,可以看這裡的例子。Create transform graphics object
先開著hold on畫出軌跡的圖,然後再畫一個車身。
如果你是想看到動圖效果的話,每次畫下一個車身之前先用白色把前一個車身的圖蓋掉。粗暴一點把每一幀裡面輪子的handle獲取到,畫下一幀的時候,把前面獲取到的刪除
推薦閱讀:
※如何看待新NSX在topgear賽道圈速?
※Koenigsegg Regera 的動力鏈設計有哪些創新意義?對今後的汽車發展可能帶來什麼影響?
※汽車可以改成銀色鏡面反射的外觀嗎?
※買AMG A45的理由有哪些?
※如何評xjkejxio?