javascript - 在 JavaScript Canvas 的 2D 上下文中使用多个 Canvas 来实现撤消/重做的缺点?

标签 javascript canvas undo redo

目前,我对使用 lineTo() 绘制的所有线条都有一个单一的 2d 上下文/ Canvas ,但我想实现一个撤消/重做功能,如果不重新重新绘制整个 Canvas 或保存状态,这是不可能的( 12)。

与其他方法相比,为绘制到堆栈上的每条线推送一个新 Canvas 是否有缺点?从时间复杂度的 Angular 来看,撤消/重做将是 O(1) 而不是 O(n),但我不确定是否还会存在其他问题。

最佳答案

正如 ggorlen 和 Kaiido 提到的,这里的缺点是内存,就像在其他帖子中保存以前的状态一样,因为每个 Canvas 仍然占用内存中的整个 Canvas 大小。

关于javascript - 在 JavaScript Canvas 的 2D 上下文中使用多个 Canvas 来实现撤消/重做的缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59516837/

相关文章:

c# - 如何从 RichTextBox 控件的撤消堆栈中删除操作?

Javascript:在另一个函数中调用函数不起作用?

html - 使用 Dart 更新 HTML Canvas

visual-studio - 如何在TFS上撤消 “Get Latest Version”

html - 如何使用 HTML5 缩放 ImageData?

javascript - WebKit 浏览器更新 Canvas 很慢

php - 实现撤消和重做功能 javascript 和 php

javascript - "click html/deep/#id"在 MeteorJS 模板事件处理程序中不工作

javascript - ExtJS4 - 表单提交按钮周围出现的轮廓

javascript - slider 不自动移动