标签: drawing undo-redo raster
你正在制作像Paint这样的绘图程序。您希望能够撤消/重做画笔笔划。你会如何实现这个?
优化速度和记忆。
答案 0 :(得分:2)
使用quadtree记录更改的画布部分的先前状态。 在撤消时,从四叉树中替换画布状态。
答案 1 :(得分:0)
创建画布的备份副本。选择一个完全围绕画笔描边的矩形贴片。在新版本和备份中保存该修补程序中包含的位图。您现在可以通过blit这些更改来撤消或重做笔划。
可能会占用大量内存。