Matlab不使用hold on怎麼把plot合在一起?

想畫一下汽車轉彎4個輪胎的軌跡動畫(俯視圖),車身用線段圍成的長方形表示。循環過程中,輪胎的軌跡需要用hold on,但是車身不能hold on,所以一個圖裡面畫不出來(循環過程中有hold off之前的軌跡就沒了)。可以把軌跡和車身運動分別畫出來,但是不知道怎麼把這兩個圖合成一個。網上查的都說是hold on,但是這裡明顯不行。有沒有別的語句實現呢?


1) 第一次畫車的時候,把handle存下來,

比如我用一個星來表示車

&>&> p = plot(0,0,"*");

2) 然後

&>&> 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?

TAG:汽車 | 編程 | 應用數學 | MATLAB | 模擬模擬 |