代码之家  ›  专栏  ›  技术社区  ›  Nick Retallack

如何在光栅绘图程序中实现撤消?

  •  3
  • Nick Retallack  · 技术社区  · 15 年前

    你在做一个像画画一样的绘图程序。您希望能够撤消/重做笔刷笔划。你将如何实现这一点?

    优化速度和内存。

    2 回复  |  直到 15 年前
        1
  •  2
  •   Ira Baxter    15 年前

    使用A quadtree 记录画布更改部分的先前状态。 在撤消操作中,从四叉树替换画布状态。

        2
  •  0
  •   Nick Retallack    15 年前

    创建画布的备份副本。选择完全包围笔刷笔划的矩形面片。将修补程序中包含的位图保存到新版本和备份中。现在您可以将这些更改设置为撤销或重做笔划。

    可能会占用很多内存。