目前,我对使用 lineTo() 绘制的所有线条都有一个单一的 2d 上下文/ Canvas ,但我想实现一个撤消/重做功能,如果不重新重新绘制整个 Canvas 或保存状态,这是不可能的( 1 , 2)。
与其他方法相比,为绘制到堆栈上的每条线推送一个新 Canvas 是否有缺点?从时间复杂度的 Angular 来看,撤消/重做将是 O(1) 而不是 O(n),但我不确定是否还会存在其他问题。
最佳答案
正如 ggorlen 和 Kaiido 提到的,这里的缺点是内存,就像在其他帖子中保存以前的状态一样,因为每个 Canvas 仍然占用内存中的整个 Canvas 大小。
关于javascript - 在 JavaScript Canvas 的 2D 上下文中使用多个 Canvas 来实现撤消/重做的缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59516837/