标签列表
如何在栅格绘图程序中实现撤销功能?
drawing
undo-redo
raster
3
3
你正在开发一个类似于画图程序的软件,希望能够撤销和重做笔划。你该如何实现这个功能?
请考虑速度和内存优化。
-
Nick Retallack
1
没有,只是在众包寻求想法。我提出了我的答案。还有其他的想法吗?
- Nick Retallack
2
个回答
2
2
使用
四叉树
记录画布上发生变化的部分的先前状态。在撤销操作时,从四叉树中替换画布状态。
-
Ira Baxter
回答链接
0
0
创建画布的备份副本。选择完全包围笔划的矩形补丁。将该补丁中包含的位图保存在新版本和备份中。现在,您可以将这些更改复制到撤消或重做笔划中。
可能会使用大量内存。
-
Nick Retallack
1
将长笔画分解为一系列短笔画可以大大减少所需的内存。想象一下绘制“U”形并沿着U形路径使用一组框而不是一个覆盖整个“U”的边界框。
- MadCoder
回答链接
网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接
相关问题
3
为绘图应用添加撤销功能
4
如何在QPlainTextEdit中覆盖撤销/重做功能
5
如何在照片编辑应用程序中实现“撤销”功能是最佳方法?
5
如何在R中设置绘图栅格的ylim和xlim?
5
如何在MVVM应用程序中实现撤销/重做?
5
如何利用SQLite实现撤销/重做功能?
16
如何使用Python/Django实现“撤销”功能
8
如何在NSTextview中实现撤销功能
3
不逐字符撤销的情况下,如何在AngularJS中实现撤销/重做功能
5
如何在栅格处理中保留栅格数据类型?