gpt4 book ai didi

ios - iOS 绘画应用的撤消/重做

转载 作者:行者123 更新时间:2023-11-28 21:51:19 25 4
gpt4 key购买 nike

我一直在研究什么是绘画应用程序实现撤消/重做功能的最佳方式。我在 iOS 上使用 OpenGL ES 2.0。最流行的方法似乎是保存一个命令列表和 VBO,以将绘画重新生成到以前的状态(Memento 设计结构)。另一种方法是在每次绘图操作后拍摄图形快照,并在撤消时恢复到这些快照。

我对这两种方法都有疑问:

1) 备忘录 - 在一长串操作之后,尤其是计算密集型的洪水填充算法,撤消/重做功能将变得非常缓慢和密集。

2) 快照 - 在一长串操作之后,这些快照将开始占用大量内存,尤其是在原始状态下。

我想知道是否有人找到了适用于这种情况的解决方案,或者这里有人知道如何优化上述方法。

谢谢。

最佳答案

我认为没有办法限制可撤消的步骤数。对于每个可撤消的操作,您总是需要一些 内存量来捕获先前状态或状态更改。

Command pattern实际上似乎比 Memento 更适合处理撤消/重做。使用它,您将只存储有关每个操作的特定更改的信息。根据操作的不同,这可能仍然很重要,但我认为它比盲目地使用 Memento 保存整个对象状态更有针对性。

关于ios - iOS 绘画应用的撤消/重做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28241581/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com