社区
数据结构与算法
帖子详情
求助:Redo,Undo的实现原理
wushicnn
2003-01-08 05:03:35
加精
Redo,Undo的实现原理是什么?
...全文
97
28
打赏
收藏
求助:Redo,Undo的实现原理
Redo,Undo的实现原理是什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
28 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zzwu
2003-01-21
打赏
举报
回复
抱歉:
上面我写错了,把我的个人网站的域名当作email地址了,我的email地址为zzwu@citiz.net,
也可以
zzwu@zzwu.net
wushicnn
2003-01-21
打赏
举报
回复
同意
wushicnn
2003-01-21
打赏
举报
回复
zzwu(未名);崇拜啊.
刚刚浏览了你的网页,可惜看不到那些算法.
我要努力学习啊
wushicnn
2003-01-20
打赏
举报
回复
zzwu(未名):你说的对,是要占用很大的空间,好在有步骤限制.保存象素的方法对存贮空间的要求也很大吧,那个开销小一点啊
zzwu
2003-01-20
打赏
举报
回复
wushicnn(虎猫) :
很高兴又交了一个朋友! 我的email:www.zzwu.net.
如果用vector,则又可用一种方式了:保存vectors.
wushicnn
2003-01-20
打赏
举报
回复
zzwu(未名):有兴趣讨论一下吗?对于你所说的第三中方法,在我这里并不要求太多的信息,只有几个关键的数据,不如位置等,而且采用vector方式,对存贮空间要求不大.
另外我的MSN是wushicn@hotmail.com,我们交个朋友如何?
zzwu
2003-01-20
打赏
举报
回复
保存象素的方法自然要比保存整个画面对存贮空间的要求小一点.
3种保存方式的优缺点比较如下:
1.保存作图命令:对存贮空间的要求小,但速度最慢,每一像素要从新计算
2.保存被修改的那些象素:对存贮空间的要求次之,速度快,程序复杂
3.保存整个中间结果(全图或全屏幕):对存贮空间的要求最高,速度快,程序简单
保存都用栈来实现,用2个指针,见前面引用的那个贴.
zzwu
2003-01-18
打赏
举报
回复
对于3D图形,我以前还用过一种的方法,就是每次作图前,将要修改的位置的所有象素保留起来,要undo时,就把保留的这些象素重新写回去就行了.自然,为了redo,原来每次添加的象素也应保存起来.
我以前作分子动画时,为了提高速度,也采用了类似的方法.
tyb98032
2003-01-18
打赏
举报
回复
可以参看一下“四人帮”写的《设计模式》中的Command模式。。。
链表和栈是必要的数据结构。
zzwu
2003-01-17
打赏
举报
回复
我所说的第2种方法就是你讲的意思.这种方法的代价是需要很大的存储空间.
wushicnn
2003-01-16
打赏
举报
回复
我想到一个方法,类似与存档和取档,操作一次存贮一下信息,undo时取出信息
wushicnn
2003-01-13
打赏
举报
回复
我是在做一个3D软件,感谢大家对我的帮助,实际上我是一个新手,所以做起来感到很吃力
zzwu
2003-01-12
打赏
举报
回复
sameboat(sameboat) :你好!
谢谢你的夸奖!
参加讨论,帮助别人,可广交朋友呵!
同时,解决别人的问题,对自己也是一个锻炼,能学到东西的.
林仪明
2003-01-11
打赏
举报
回复
可以用一个链表来做,在用一个指针指向当前状态的节点。
比如现在用户执行了10个操作,我们有十个节点。
用户想要undo4次,然后再执行新的操作。这样我们就可以把新的操作接到第6个节点后就可以了!
sameboat
2003-01-11
打赏
举报
回复
你是在做数据库系统吗?若实现Redo和Undo日志,有难度。study.
zzwu(未名),你好
你真是热心,到处有你的恢复。
sliant
2003-01-10
打赏
举报
回复
用链表将命令序列记录下来
每个命令都自带有 do() 和 undo() 接口
这样效率较高,但所有命令处理的编码几乎增大了一倍
wushicnn
2003-01-10
打赏
举报
回复
那样效率也太慢了吧,有更好的方法吗?那个贴要点击管理才能进入
zzwu
2003-01-10
打赏
举报
回复
wushicnn(虎猫):
你指的第一种方法確實是慢的.
可以採用我講的第二种方法:即每次都保留中間結果,這是最快的方法了.
也可以折衷一下,如每隔n個作圖命令,保留1個中間結果(n>1);這樣,每次undo,只要从從最後保留的那個中間結果開始作起就可以了.
jiangyu99
2003-01-10
打赏
举报
回复
我觉得如果画图时注意用反色就可以解决吧。
比如现在做了1,2,。。。,n 共n步,
现在撤销n的操作,实际上就是重作n的步骤,
wushicnn
2003-01-10
打赏
举报
回复
zzwu(未名) :
我指的是undo(),因为照你的说法,每undo一次,都要从n=1到n=n-1执行一遍.
而且现在我做的是3D操作,引擎对资源的占用本身就已经很大了,所以想要一个效率高一点的算法
加载更多回复(8)
深入解析Oracle.DBA入门进阶与诊断案例
5.1.5 自动PGA管理
实现原理
169 5.1.6 PGA的调整建议 173 5.1.7 PGA的转储 176 5.2 SGA管理 178 5.2.1 SGA的组成 179 5.2.2 SGA与共享内存 186 5.2.3 SGA管理的变迁 191 5.3 Oracle的内存分配和使用...
java高级面试题
本文内容过长,建议收藏,通过本文的学习,你可以知道: HashMap底层原理,扩容机制,加载因子为什么是0.75?并发修改异常解决办法?jdk8以后会使用红黑树...数据库事务隔离级别,数据库的四大属性底层
实现原理
、Spr
2022最新高级java面试题
ConcurrentHashMap底层实现底层
实现原理
:HashMap加载因子为什么是0.75?实际运用出现的问题分析:CAS,原子引用,ABA问题,volatile?什么是Spring IOC,Spring AOP?应用场景有哪些?数据库事务隔离级别,数据库的...
计算机等级考试四级--数据库原理
——数据库原理(2013版) 2015年4月9日录入 目 录 第1章 数据库原理概述 - 7 - 1.1 数据库技术基本概念 - 7 - 1.1.1 信息、数据与数据处理 - 7 - 1.1.2 数据库、数据字典、数据库管理系统、数据库系统 -...
全国计算机等级考试-数据库四级备考资料
数据库原理概述 数据是信息的语义解释是错的,数据是信息的载体,信息是数据的内涵,是数据的语义解释。 信息的价值与其准确性、及时性和可靠性有关。 数据库设计分为6个阶段:需求分析、概念结构设计、逻辑结构...
数据结构与算法
33,007
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章