2016-11-16 73 views
2

我有一個數據幀隨着時間的推移,tx,一個人走的x:0-520y:0-300已知地圖上的座標y創建動畫與PNG背景XY圖。我想創建一個人在每個t步行的動畫與背景的情節是地圖。R:使用saveVideo()和rasterImage(太慢)

我嘗試使用動畫包中的saveVideo(),但沒有先顯示背景,它運行良好。當我嘗試使用rasterImage()添加背景時,在背景中繪製PNG需要太多時間,因爲它會在每個循環中從頭開始繪製PNG。

有沒有一種方法可以通過不讓rasterImage()在每個循環上運行來加速此過程?

是否可以刪除繪製點並繪製一個新點,以便我不必再次運行rasterImage()

您的幫助將不勝感激!

下面是我的代碼: 一個是x數據幀,yt欄目

saveVideo({ 
ani.options(interval = 1/100, nmax = 50) 
xy = a[,1:2] 
t = a$t 
ima <- readPNG("floorplan.png") 
for (i in 600:800) { 
    plot(xy[i,], xlim = c(0,520),ylim = c(0,300)) 

    ####to plot my png as background. works fine if this section is omitted 
    lim <- par() 
    rasterImage(ima, lim\$usr[1], lim\$usr[3], lim\$usr[2], lim\$usr[4]) 
    ##### 


    legend('topright',legend=paste('time =',i), bty='n') 
    ani.pause() 
    } 
},movie.name = "pathBG.mp4") 

回答

0

由於R是主要是統計工具,而不是裸機編程語言,它不具有大量支持高性能圖形的開箱即用。

要改善生成動畫的性能,最好的方法是使用RGL包。這使您可以使用機器的圖形硬件來顯示圖形。您可以設置一次RGL場景,然後重新使用它來製作動畫所需的所有快照,因此不需要很長的加載時間!

下面是要採取的步驟:

  1. 爲背景,無論你的PNG安裝RGL包
  2. 設置場景,或作爲框對象上的材料。定位你的行走者。
  3. 從第3步

拍攝快照的場景並保存PNG

  • 移動你行走的人位置
  • 重複有關代碼示例看到從優秀崗位Guillaume Fillion,here