Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
目前,对于使用 lineTo() 绘制的所有线条,我都有一个单一的 2d 上下文/画布,但我想实现一个撤消/重做功能,如果不重新绘制整个画布或保存状态(1、2),这是不可能的。
与其他方法相比,为绘制到堆栈上的每一行推送一个新画布是否有缺点?从时间复杂度的角度来看,撤消/重做将是 O(1) 而不是 O(n) 但我不确定是否会有其他问题。
正如 ggorlen 和 Kaiido 提到的,这里的缺点是内存,就像在其他帖子中保存以前的状态一样,因为每个画布仍然占用整个画布在内存中的大小。