在 JavaScript 画布中的 2D 上下文上实现撤消/重做时,多个画布的缺点是什么?



目前,我有一个单一的 2d 上下文/画布用于使用 lineTo(( 绘制的所有行,但我想实现一个撤消/重做功能,如果不重新绘制整个画布或保存状态 (1, 2(。

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

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

最新更新