如何在android中的opengl中实现撤消功能

Nik*_*iya 5 java android opengl-es

我正在开发一个扭曲图像的Android应用程序.我正在使用opengl翻译和缩放功能来扭曲图像.图像扭曲很好.现在我想实现撤消功能.但是无法实现功能.任何人都可以帮助如何在opengl中实现撤消功能.任何建议或代码都会有所帮助.提前致谢 .

Fre*_*oot 0

雷·塔耶克是对的。使用命令模式。也就是说,对于用户执行的每个操作,您都将该操作(命令)以及与该操作相关的任何数据推送到撤消堆栈上。

为简单起见,让我们看一下绘制程序。该过程直接适用于您的 OpenGL 应用程序。用户从 x1, y1 到 x2, y2 绘制一条线。该命令可以表示如下:

command = DrawLine
data = x1, y1, x2, y2
Run Code Online (Sandbox Code Playgroud)

您可能需要至少两个类来存储撤消数据,但它们很小且易于实现。当用户想要撤消时,只需将顶部对象从撤消堆栈中弹出,查看它,然后执行关联的撤消操作(特定于每种类型的命令)。或者,您甚至可以在每个命令对象本身中包含撤消操作。然后将撤消的命令压入重做堆栈。

这应该足以让您开始。华泰