在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5  HTML/ 在canvas上畫圖的撤銷功能,怎么實現(xiàn)

在canvas上畫圖的撤銷功能,怎么實現(xiàn)

我現(xiàn)在唯一想到的就是每畫完一個圖形就把當前canvas保存到數(shù)組中,撤銷的時候再從數(shù)組中取出來

回答
編輯回答
情未了

保存canvas太麻煩了. 可以把繪制的信息保存起來,比如說繪制的區(qū)域.
撤銷在把這片區(qū)域清空就可以了.

2018年3月15日 23:33
編輯回答
陌離殤

將每一個操作作為一個記錄, 存在棧(可以用數(shù)組模擬)中, 用戶每操作一個記錄, 就入棧, 撤銷就出棧, 并且清除這條記錄對應的圖形。

2017年8月20日 05:00
編輯回答
怪痞

記錄每一步操作的行為和初始位置,放到數(shù)組里

2017年8月19日 00:44
編輯回答
不舍棄

這個挺好解決的,畫板上所有的圖形都放在一個數(shù)組里。也就是說,每個圖形是一個對象,內(nèi)部有這個圖形的所有信息,包括x, y, width, height等,然后操作這個數(shù)組即可完成撤銷。
array.pop(); array.forEach(a => a.draw());

當然,有更簡單的解決方法,給你推薦一個canvas 2d渲染庫,https://www.github.com/PengJi...。
這是一個canvas 2d 渲染庫,體量小,功能強大,支持畫圖,圖形綁定時間,拖拽,放大縮小等。

你的撤銷需求很容易就能實現(xiàn)。

2017年10月31日 15:15