[問題] 類似photo shop 上一步、下一步做法

作者: milk78522 (iMetal)   2014-07-19 13:05:55
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
C++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
Qt
問題(Question):
想做出跟photoshop 一樣對影像做完處理後,
可以回到上一步以及下一步的功能
但是卻不知道要用什麼資料結構比較適合
而可回復的步數是固定的,好比說限制最多五步
有想過是不是可以用兩個stack : S,T
每做一次影像處理後的結果就push 到 S, 而顯示在畫面上的永遠是S頂端的資料
當作上一步的時候,將S pop,且把pop出來的Data push 到 T
若是做下一步就將T pop,並依序push到 S中
若是T非空而作了新的影像處理,則將T flush掉
作者: azureblaze (AzureBlaze)   2014-07-19 13:07:00
deque
作者: flydragon198 (Richard)   2014-07-19 13:27:00
應該不是紀錄整張圖,而是記錄作了什麼,undo就反操作吧,我猜
作者: damody (天亮damody)   2014-07-19 14:48:00
Command pattern 選我正解
作者: suhorng ( )   2014-07-19 15:19:00
any persistent data structures!
作者: yoco315 (眠月)   2014-07-19 15:52:00
acureblaze 跟 damody 講的對,用 deque 放 Command
作者: xpride (陳ㄚ智)   2014-07-19 16:42:00
design pattern 裡面的memento 參考看看
作者: littleshan (我要加入劍道社!)   2014-07-21 23:47:00
你的問題好像不是怎麼undo,而是怎麼做有限空間的stack用linked list或circular buffer都很簡單啊...

Links booklink

Contact Us: admin [ a t ] ucptt.com