iCAx开思工具箱

标题: 怎么实现undo功能 [打印本页]

作者: 10HOUSE    时间: 2003-3-30 22:25
标题: 怎么实现undo功能
我用mfc写的一个绘图东东,想实现UNDO功能,各位可否从实现的原理上指点一二,多谢啦
作者: darkhorse    时间: 2003-3-31 13:29
呵呵,欢迎老兄前来指导,
10house是开发前辈呀,
指点是绝对不敢承担,反过来你指点一下我们到是恰如其分。
  
我不太清楚你编写的程序实现什么样的功能。
可以向你推荐一本书,《计算机图形学》潘云鹤主编的,
里面比较详细的介绍了GS CAD的一些算法,数据结构等问题。并给出了一些例程。当初我看到这本书的时候我就有一个想法,用里面的思想实现一个小的CAD系统。
  
对于undo于redo,肯定是一个基于造型历史的记录,类似于队列,采用指针来维护该队列,队列用双向链表或者其他的方式,指针总是指向当前的,undo一下指针指向前一个(指向更历史一个),undo之后添加一个新的特征(或可记录操作),链表重新生成,这样前面所有的undo可能就删除了,undo,redo所用的队列数据结构都一样,仅仅一个历史标志,该数据与指向具体的操作。每一个具体的操作,比如建立正方体,长方体,因为你用C++,所以都是一个对象的实例的句柄(handle,我忘得差不多了,基本是这个思路)
  
一点想法,详细请了解数据结构与计算机图形学。
  
再次欢迎前辈的光临。




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3