相关疑难解决方法(0)

撤消引擎的设计模式

我正在为民用机器应用编写结构建模工具.我有一个代表整个建筑的巨大模型类,其中包括节点,线元素,载荷等的集合,它们也是自定义类.

我已经编写了一个撤消引擎,它在每次修改模型后都会保存一份深层拷贝.现在我开始考虑是否可以进行不同的编码.我可以使用相应的反向修改器保存每个修改器动作的列表,而不是保存深层副本.这样我就可以将反向修改器应用于要撤消的当前模型,或者将修改器应用于重做.

我可以想象你将如何执行更改对象属性等的简单命令.但复杂命令如何?就像将新节点对象插入模型并添加一些保持对新节点的引用的线对象一样.

如何实现这一目标?

design-patterns undo

116
推荐指数
8
解决办法
3万
查看次数

使用Canvas撤消/重做绘画程序

我需要为我的绘图程序实现一个撤消/重做系统:http://www.taffatech.com/Paint.html

我想出的想法是拥有2个数组堆栈,一个用于撤销,一个用于重做.无论何时绘制和释放鼠标,它都会通过推送将画布图像保存到撤消数组堆栈.如果你绘制其他东西并释放它也会做同样的事情.但是,如果单击"撤消",它将弹出撤消数组的顶部图像并将其打印到画布,然后将其推送到重做堆栈.

单击时重做将从其自身弹出并按下以撤消.每次鼠标关闭后,将打印撤消的顶部.

这是正确的方式还是有更好的方式?

javascript jquery canvas

6
推荐指数
2
解决办法
1万
查看次数

如何在android中的opengl中实现撤消功能

我正在开发一个扭曲图像的Android应用程序.我正在使用opengl翻译和缩放功能来扭曲图像.图像扭曲很好.现在我想实现撤消功能.但是无法实现功能.任何人都可以帮助如何在opengl中实现撤消功能.任何建议或代码都会有所帮助.提前致谢 .

java android opengl-es

5
推荐指数
1
解决办法
351
查看次数

如何撤消/重做最后一次触摸动作

我有一个正在处理的图像,我有两个按钮,撤消和重做.如果单击这两个按钮中的任何一个,我需要代码撤消/重做上一个触摸操作.我知道我必须使用堆栈.我该如何实施呢?

android undo-redo

2
推荐指数
1
解决办法
3937
查看次数