请问在做图形图象方面如何做好Redo和Undo的功能!!!!(0分)

  • 主题发起人 主题发起人 cdyxl
  • 开始时间 开始时间
C

cdyxl

Unregistered / Unconfirmed
GUEST, unregistred user!
如题! 请大家讨论!
 
我以前的做法:

如果此操作可逆则只记录操作类型和参数
如果不可逆,做一个SnapShot,缓存图像,Undo的时候恢复到原始图像
可是耗存储空间
 
楼上的,有没有QQ讨论一下啊?
我的: 183021114
请加 DFW 字样。谢谢!
 
公司不能用QQ

可怜

msn可以
 
那用MSN吧。
呵呵!
我的: gz_oscar@msn.com
 
gz,我也正想问这个问题
 
做缓存呀,保存每个操作以及操作前的对象

我是做矢量图像的,一直在考虑如何做这个东西
一次的Undo/Redo 是没问题的,多次就是缓存的东西太多,每一步都是累加以
 
是啊,所以要来讨论一下,看看谁有好的方法。
GISWANG,你在哪个城市???
 


记下每一个操作的痕迹。n0, N1,n2,n3 ,n4.......
no 是工作的开始. 例如 要退到 n2 只要 重复一下 no 到n2 的操作.
只要你把每一个 动作设计好....那保留 痕迹 应该不会占用多大的空间
 
to cdyxl
Shanghai
矢量操作,redo/undo 空间占用不大,就是里面存储的东西有些麻烦。
要有一个好的恢复算法,应为我们要考虑复合对象的操作,删除一个对象可能有连锁反应
 
我以前写了一个小东西. 主要画一些固定图形.
我当时是把这些固定的图形定义成类.
当我画图时,只要他建一个实例。 这些实例保存在一个 队列中
这样就可以做 添加修改删除. 后退了 与操作队列差不多
 
保存各个阶段的图形,
xor后再压缩,可以节省一部分空间,但要牺牲一部分速度,
可以在线程中实现。
 
后退
顶部