# project-1 **Repository Path**: lzwzz_0/project-1 ## Basic Information - **Project Name**: project-1 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 9 - **Created**: 2022-06-13 - **Last Updated**: 2022-06-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 在线 SVG 编辑器 添加了undo(撤回)和redo(重做)功能。 * 实现 使用了四个栈分别存储undo对象,undo操作,redo对象和redo操作。 使用undo或redo功能时,对象栈和操作栈都pop出栈顶元素,判断操作栈的操作,分别进行对应操作修改至上一阶段。undo栈pop时,redo栈要push其中对象和操作,反之亦然。 注意,当我继续添加或修改时,redo栈要被清空。 * 难点 需要对每个操作的修改都要有相应的undo或redo函数改变; 如何找到操作时当前状态的对象属性记录下来。 * 展示界面 添加rect ![image-20220616131626646](picture/1.png) 撤回后 ![image-20220616131747697](picture/2.png) 移动rect ![image-20220616131819889](picture/3.png) 撤回 ![image-20220616131847883](picture/4.png) 修改形状 ![image-20220616131918450](picture/5.png) 撤回 ![image-20220616131932114](picture/6.png) 重做 ![image-20220616132046999](picture/7.png)