CN109446502A - 一种协同图形编辑撤销重做的方法 - Google Patents
一种协同图形编辑撤销重做的方法 Download PDFInfo
- Publication number
- CN109446502A CN109446502A CN201811206679.4A CN201811206679A CN109446502A CN 109446502 A CN109446502 A CN 109446502A CN 201811206679 A CN201811206679 A CN 201811206679A CN 109446502 A CN109446502 A CN 109446502A
- Authority
- CN
- China
- Prior art keywords
- undo
- redo
- effect
- cancels
- reformed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 230000000007 visual effect Effects 0.000 claims abstract description 15
- 230000000694 effects Effects 0.000 claims description 58
- 238000002407 reforming Methods 0.000 claims description 17
- 230000004807 localization Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 9
- 230000006378 damage Effects 0.000 description 4
- 241001061260 Emmelichthys struhsakeri Species 0.000 description 3
- 230000001364 causal effect Effects 0.000 description 3
- 235000013399 edible fruits Nutrition 0.000 description 3
- 241001062009 Indigofera Species 0.000 description 2
- 239000011248 coating agent Substances 0.000 description 2
- 238000000576 coating method Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/174—Form filling; Merging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种协同图形编辑撤销重做的方法,所述的方法针对决实时协作图形编辑系统中的任意撤消和重做操作,本发明基于图像协同编辑构建基于对象的编辑系统实现方法,允许图形对象,如线条,矩形,圆形等,创建、更新和撤销。所述方法首先复制文档存储架构,生成本地化可执行站点,然后广播到远程站点,最后针对冲突站点进行选择,实现对文档的编辑操作。本发明针对文档和图形编辑提供可视化选择和编辑操作,提高了文档或图形编辑的便捷性和准确性,方便用户的使用和编辑。
Description
技术领域
本发明属于协同图形编辑,具体涉及一种协同图形编辑撤销重做的方法。
背景技术
在文本编辑技术中,撤消是有用且必须支持的功能。撤消可用于恢复错误的操作,用户通过尝试-失败,再学习/操作,或通过回溯操作等寻找替代的解决方案,并最终达到用户想要的最佳编辑/设计效果。撤消对于图形编辑系统也同样重要,即使单击鼠标都很容易发生错误,需要有撤销的技术。
在多用户协作应用程序中的撤消更有价值和必要。多用户应用程序必须具有单用户应用程序的所有撤销功能,但是多用户错误的潜在成本比单用户会增加很多倍,而且由于多用户的存在,在协作环境中,寻找替代撤销操作的成本也高了好多倍。
任意撤消是允许用户随时能操作撤消任何操作的功能。任意撤消可用于构建不同的撤销模型,如单个步骤撤消,按时间顺序撤消和选择性撤消等。每个用户都可以选择他/她的喜欢的不同于其他用户的撤消模型。此外,任意撤消允许用户仅撤消本地生成的操作,也可撤销全局用户生成的全局撤消。
目前,有许多协作文本编辑系统的撤消解决方案,但是关于协同图形编辑系统的撤消解决方案非常有限。
发明内容
发明目的:针对上述现有技术的不足,本发明提供一种协同图形编辑的撤销重做方法。
技术方案:一种协同图形编辑撤销重做的方法,所述方法基于图形协同编辑构建编辑对象,包括如下步骤:
(1)基于图形协同编辑构建编辑对象;
(2)通过复制文档创建本地化操作站点;
(3)远程广播站点,找准冲突点;
(4)操作选择,执行操作。
进一步的,所述方法包括对单个对象及一个以上版本编辑文档进行协同编辑操作,所述对象包括图形对象或文档。
进一步的,所述图像对象包括线条、矩形和圆形。
进一步的,所述协同编辑操作包括对象创建、对象更新、对象撤销和对象重做。
所述方法的目标对象为图形,进行UNDO操作,则图形撤销包括如下两种:
GU1:给定操作O,在对象G上O的效果被覆盖,则撤消O将不会在G上产生可见的影响。
GU2:给定在对象G上有可见效果任意操作O。当Ox覆盖了操作O时,如果撤销O,则会产生Ox在G上的效果。
所述图形对象G,状态中的操作O,如果已经被其它操作覆盖,那么UNDO操作O,不会在图形对象G上产生一个可见的效果。如果图形对象G上的有可见效果的操作O已经被另一个操作Ox覆盖,那么UNDO操作O,则会在对象G上产生操作Ox的执行效果。
更进一步的,所述方法的目标对象为图形,则图像重做包括如下两种:
GR1:给定目标对象G的任何操作O,如果G的状态中包含了覆盖O的操作,然后重做O将不会对G产生可见的结果;
GR2:给定目标对象G的任何操作O.如果在图形对象G的状态中没有覆盖O的任何操作,那么重做O将在目标对象G上产生操作O的可见效果。
所述图像目标对象操作编辑为针对目标图形对象G,G的状态中操作O已经被其它操作覆盖,则REDO操作O,不会在对象G产生一个可以看见的效果。如果没有任何操作覆盖了操作O,那么REDO操作O,则会在对象G上产生操作O带来的可见效果。
有益效果:本发明与现有技术相比,其显著的效果在于:本发明针对文档编辑采用实时协同编辑,解决了实时协作图形编辑系统中的任意撤消重做操作;另一方面,本发明可以为用户提供选择,根据需求实现不同的编辑。
具体实施方法
为了详细的说明本发明公开的技术方案,下面结合实例做进一步的阐述。
本发明技术是基于GRACE(GRAphics Collaborative Editing)系统技术,是一个基于对象的系统,允许图形对象,如线条,矩形,圆形等,创建、更新和撤销。
一种协作图形编辑撤销重做的方法,所述方法包括如下步骤:
(1)基于图形协同编辑构建编辑对象;
(2)通过复制文档创建本地化操作站点;
(3)远程广播站点,找准冲突点;
(4)操作选择,执行操作。
本发明公开了一种解决实时协作图形编辑系统中的任意撤消和重做操作技术,这个撤消和重做操作发明技术是基于GRACE(Graphics Collaborative Editing)系统技术,是一个基于对象的系统,允许图形对象,如线条,矩形,圆形等,创建、更新和撤销。
更新对象操作,如MOVE,FILL,RESIZE等操作都可以用于更改该对象的属性。为了提供高响应性,本发明采用了复制的文档存储架构。本地生成的操作在本地站点执行,然后再传播到所有远程站点。然后通过这种操作执行方式,可能会产生冲突。例如,两个并发MOVE操作将同一个物体移动到不同的位置上,就会发生冲突。本发明的多版本控制撤销技术是一种创新的用来解决冲突操作的并发控制技术。通过应用冲突操作到同一个对象的不同的版本中,该方案通知用户冲突的发生,它通过显示所有冲突操作的结果,允许用户在理想的效果上做出理智的决定。
具体的实时协同编辑包括以下两点:
(1)协同图形编辑协同中单一对象的UNDO/REDO操作,产生可见的撤消/重做正确的结果;
(2)协同图形编辑协同中多版本对象的UNDO/REDO操作,对多版本产生可见的撤消/重做正确的结果。
进一步的,对于UNDO/REDO操作效果,形成了UNDO/REDO效果算法
在对象图形编辑系统中的覆盖效果在确定DO操作效果方面至关重要,包括撤消/重做效果。在GRACE中,独立操作目标创建相同的对象并更改相同的属性不会互相覆盖。这是因为他们要么将相同的属性更改为相同的值(即执行第二个操作时,不会更改第一个操作设置的属性值,或者它们改变相同属性到不同的值,这将导致冲突,然后应用到不同的版本。因此,只有因果相关的操作可以互相覆盖。进一步的,操作根据其因果关系执行。因此,如果在执行O2之后产生O1,任意操作O1都只能覆盖另一个操作O2的效果,即O2—>O1(操作O2被操作O1覆盖)。
操作的效果可能是可见的或不可见的取决于此操作的效果是否已经被覆盖或没有被覆盖。如果该操作指定了一个对象的属性值,则这个对象上的操作效果是可见的。在一个操作刚刚被执行后,其效果也是可见。当这个操作被另一个操作的效果覆盖(或替换)时,这这个操作效果变得不可见。执行操作的效果,无论是否可见,都存在于他们执行,撤消或重做其他操作的文件状态中。当操作被撤消,则假设他们不会被重新执行或参与其他操作的DO,撤消或重做,所以除非他们自己被重做,否则他们的效果会永久消除。因此,要撤消操作,我们只需要确保在撤消时其可见效果被删除即可。在重做操作后,会假设它们的效果在文档状态已退出,好像它们从未被撤消过一样,尽管在重做操作时他们的效果会可见或不可见。因此,在重做操作时,我们只需要确保产生正确的可见效果即可。
实施例1
给定任意三个操作,O1,O2和O3,改变相同的属性,颜色,值分别是红色,绿色和蓝色。假设他们有O1->O2->O3的覆盖关系,那么他们按O1->O2->O3并以该顺序被执行。在状态只有操作O3,蓝色,是可见的。
可以选择示例1中的这三个操作中的任何一个操作进行撤消和任何撤消操作可以选择重做。当已经被覆盖效果的操作被选中进行撤销操作,会发生什么呢?
在状态O1和O2的效果已被覆盖。
有三种情况:
1.选择O1进行撤销操作。状态S(O2oO3),颜色仍然是蓝色。
2.选择O2进行撤销。状态S(O1oO3),颜色也保持蓝色。
3.选择O1和O2进行撤消。状态S(O3),颜色仍然是蓝色。
因此撤消O1和O2没有产生任何可见的效果,即该对象的属性值在撤消后和撤销前是相同的。
这种效果被称为规则GU1。撤销一个被覆盖的操作将没有可见效果。
那么,没有被覆盖效果的操作被撤消,会怎样呢?在状态中,O3效果没有被覆盖。撤消O3将导致状态则是O2的效果,绿色,可见。这种特殊O3和O2之间的关系并不仅仅是O3覆盖O2,因为O3也覆盖了O1。在撤消O3时产生O1的效果这是不正确的。O2和O3之间的准确关系是O2是最近一个被O3覆盖的操作,
因为Ox现在是应用于该属性的最后一个操作,Ox覆盖了应用于该属性的其他操作的效果。这些操作的效果仍然存在,即使它们不可见。这是因为当被覆盖的操作被撤销后,他们这些操作效果都将可见。
对于UNDO操作,形成了2个图形撤销规则:
GU1图形撤销规则1(Graphics UNDO Rule 1):给定操作O,在对象G上O的效果被覆盖,则撤消O将不会在G上产生可见的影响。
GU2图形撤销规则2(Graphics UNDO Rule 2):给定在对象G上有可见效果任意操作O。当Ox覆盖了操作O时,如果撤销O,则会产生Ox在G上的效果。
重做应该与DO效果一致。既然DO遵循因果顺序,那么重做也应该遵循因果关系。在状态S(O1oO3),如果O2是重做,则变为状态
因为O1->O2->O3。在这种状态下,O2已被覆盖,那么重做O2并没有改变对象现有的可见效果。即使重做之后O2的效果不可见,但它的效果是在文档状态中的,因为,无论何时当覆盖O2的操作被撤消操作时,则O2的效果将变得可见。
在下一种情况下,在状态重做O3将到状态在这种状态下只有O3的效果是可见的。
对于REDO操作,形成了2个图形重做规则:
GR1图形重做规则1(Graphics REDO rule 1)。给定目标对象G的任何操作O,如果G的状态中包含了覆盖O的操作,然后重做O将不会对G产生可见的结果。
GR2图形重做规则2(Graphics REDO rule 2):给定目标对象G的任何操作O.如果在状态G中没有覆盖O的任何操作,那么重做O将在目标对象G上产生操作O的可见效果。
进一步的针对多版本的问题,所述的高级算法为MOP算法(Multiple Objectversion application)和MOVER算法(Multiple Object Version Removal)。
本发明提出了一种在协作成功图形编辑系统中随时保证撤消或重做任意操作的技术。
在图形编辑系统领域中,在UNDO方面,目前唯一比较接近任意撤销的工作,比较灵活的UNDO,是Berlage提出的直接选择性撤消(这是和提出选择性地撤消Prakash和Shim不同的)。直接选择性UNDO允许随时撤消任何操作时,有一些例外,例如目标对象已经被销毁。在直接选择性撤消中,撤消O操作时,O’被指定为覆盖O的操作,在执行O时要覆盖操作O。当UNDO操作O时,O’将应用于当前状态,即使O’的效果已经被覆盖。
例如,执行了三个填充FILL对象G的颜色操作O1,O2然后O3。改变对象G颜色为红色,然后为绿色,后跟蓝色。直接选择性撤消,撤消O2只会将G设置为红色,即使O2的效果已被覆盖。这个效果违反了撤销属性,并且与其他撤消模型不兼容,如单步撤消,按时间顺序排列撤消,选择性撤消和任意撤消。因此,直接选择性UNDO不能用于实现其他UNDO模型。
直接选择性撤消不适用于任何并发控制协议。它不适合并发操作,因为在不同顺序的并发撤消操作命令时可能会出现不一致的情况。在上面的例子中,可以选择O2和O3同时撤消,取决于撤消操作的执行顺序,G可能是红色的(如果最后应用是O2’)或绿色(如果最后应用是O3’)。因此,以不同的顺序撤消操作时导致结果不一致。而在我们的Any UNDO将产生的唯一结果,以任何顺序撤销O2和O3后都是红色的。
在协作图形编辑系统领域,有几位作者将UNDO/REDO列为他们的进一步研究工作。然而,就目前所知,还没有任何用户发表用于协作图形编辑系统的撤消/重做的研究结果。GRACE是唯一支持Any UNDO的图形编辑系统。此外,GRACE也是唯一具有多版本并发控制协议系统,它能够根据撤消/重做而删除并重新创建版本。Tivoli有一个类似的多版本并发控制协议方案,但它不支持撤消/重做。
在本地生成的操作在本地站点执行,然后再传播到所有远程站点。然后通过这种操作执行方式,可能会产生冲突。
撤消和重做操作发明技术是基于GRACE(Graphics Collaborative Editing)系统技术,是一个基于对象的系统,允许图形对象,如线条,矩形,圆形等,创建、更新和撤销。
本发明的重点是研究在协作成功图形编辑系统中随时保证撤消任意操作的技术,并提出一个解决方案。
设:DS0成为初始文档状态,Oi是第i个在文档上执行的操作,UNDO(Oi)是命令撤消操作Oi,则:DSn为按顺序执行O1到On后的文档状态。
此属性对于任何撤消解决方案都是必不可少的,寻找支持错误恢复和替代方案的有效工具,因为它确保文件可以通过撤消所有操作恢复到任何先前的文档状态,不管UNDO的操作顺序如何,特别是,撤消在会话中的所有操作,文档总是可以恢复到初始状态。
可以证明,如果撤消在DSn的任意操作,然后撤消Oi和On之间的任意一组操作,仍然会保留撤销属性。这是因为撤消Oi和On之间的操作将消除这些操作的效果,但保留了O1和Oi-1之间的原来的效果,即操作的文件状态DSi-1。因此,以任意顺序UNDO操作Oi和On之间所有操作,文档状态维持在DSi-1。
1.UNDO/REDO操作
在图形对象编辑操作时,UNDO的目的是反转正常执行的操作DO。在DO中,操作立即应用于对象后,并在该对象上可见,这意味着该对象属性采用此操作指定的值,直到执行另一个操作来改变相同的属性。当这种情况发生时,第一次的影响操作被第二个操作覆盖。例如,O1和O2是填充操作,改变颜色物体G分别为红色和蓝色。执行操作O1将物体G的颜色填为红色,此时O1的操作影响是可见的,G的颜色是红色。然后执行操作O2,将G的颜色更改为蓝色,这是O1操作,物体G的红色变得不可见,因为它被覆盖了。
但在并发操作中,针对同一对象的并发操作将相同属性更改为不同的值被视为冲突。冲突将是通过多个对象版本使用不同的操作结果。例如,如果O1和O2是冲突,然后他们的执行将导致两个版本的G。G1受O1红色的影响,G2受O2蓝色的影响。
UNDO就是撤消反转DO的影响。如果选择UNDO操作的是最后一次操作,就很简单。最后一次操作总是可以撤消。然而,对于任意撤销,可以随时选择任何操作以便进行撤消。要确保每个操作都可以撤销,同时该要撤消的操作的结果是可见的,也可以是不可见的。撤销还必须处理在DO期间产生的多个对象版本。撤销冲突操作要正确删除DO期间创建的多个版本。相关的另一个操作时重做REDO,它类似DO,但是重做更复杂,因为它要满足可以选择以任何顺序重做任意撤消操作。
在DO这个操作(执行)后,它的结果总是在它应用的对象上可见(直到应用另一个操作来覆盖其效果)。但是在重做(REDO)中,并不是一定可见的,重做应该反转撤消操作的结果。当操作被撤消时,其结果可能是可见也可能是不可见的。因此,在重做操作后,它的结果也可能是可见的或不可见的。重做还必须处理在撤消UNDO操作时删除的多个对象版本。更复杂的是,这些操作时以任何顺序下执行的操作的,还会出现在一个已经被删除的版本需要执行重做(REDO)。
UNDO和REDO需要解决的问题:
1)对单个对象进行UNDO/REDO操作,产生可见的撤消/重做正确的结果;
2)在多版本上进行UNDO/REDO操作,对多个版本产生撤销/重做的正确结果。
2.UNDO/REDO效果
在对象图形编辑系统中的覆盖操作,DO操作很重要。不相关的操作,创建的对象或更改相同对象属性也不会互相覆盖属性值。它们要么将相同的属性更改为相同的值(即执行第二个操作时,不会更改第一个操作设置的属性值,或者它们改变相同属性到不同的值,这将导致冲突,然后应用到不同的版本。
有三个操作O1,O2和O3,改变相同的属性--颜色值,分别改为红色,绿色和蓝色。它们如果有O1>O2>O3的覆盖关系,它们必须有顺序执行O1->O2->O3。在最后的状态只有操作O3的结果蓝色,是可见的。
在对象图形编辑系统中的覆盖效果在确定DO操作效果方面至关重要,包括撤消/重做效果。在GRACE中,独立操作目标创建相同的对象并更改相同的属性不会互相覆盖。这是因为他们要么将相同的属性更改为相同的值(即执行第二个操作时,不会更改第一个操作设置的属性值,或者它们改变相同属性到不同的值,这将导致冲突,然后应用到不同的版本。因此,只有因果相关的操作可以互相覆盖。进一步的,操作根据其因果关系执行。
2个图形撤销规则:
GU1图形撤销规则1(Graphics UNDO Rule 1):给定操作O,在对象G上O的效果被覆盖,则撤消O将不会在G上产生可见的影响。
GU2图形撤销规则2(Graphics UNDO Rule 2):给定在对象G上有可见效果任意操作O。当Ox>-O.时,如果撤销O,则会产生Ox在G上的效果。
2个图形重做规则。
GR1图形重做规则1(Graphics REDO rule 1)。给定目标对象G的任何操作O,如果G的状态中包含了覆盖O的操作,然后重做O将不会对G产生可见的结果。
GR2图形重做规则2(Graphics REDO rule 2):给定目标对象G的任何操作O.如果无任何操作在覆盖O的状态G,那么重做O将在目标对象G上产生可见的操作O。
根据GU和GR规则,如何产生UNDO/REDO的结果。一个给定由CG组成的对象,在CG上操作了UNDO/REDO操作后,CG的最终结果根据算法是:
UNREG算法(UNDO/REDO Effect Generation):
UNREG(O,CG):O’
1.If(Ox∈CG∧O>Ox)then O′:=I;
2.Else
(a)If O is being redone then
O′:=O;
(b)Else O′:=MostRecentlyOverwrittenBy(O);
O还没被覆盖情况下。如果O正被重复操作(REDO),就直接重新生成O,O′就直接引用。否则O′就引用最近被覆盖的O。
3.撤销操作(UNDO)
用户操作系列存进HB队列(History Buffer),通过HB队列,我们可以顺序执行HB的操作,得到任何一个特定的操作结果。在执行UNDO/REDO的部分操作后,如何继续操作UNDO/REDO的操作?
我们有2种方法处理后续操作。第一种是,继续把操作添加到HB队列中。比如在中,UNDO O3后,新的结果就是实际上这个结果就相当于第二种方式是,在执行一个UNDO操作后,就直接在队列中,把这个操作从队列中删除,也就是直接在执行了UNDO操作后,队列就相当于
4.多版本管理
由于有并发控制策略的需要,一个对象需要有多版本对象来表示。一个对象有四个操作步骤,前三个操作为O1,O2,O3。并发操作集合可能是{O1,O2},或{O1,O3}。再执行O4操作,可能出现的情况是CG1{O1,O2,O4},另一个集合是CG2{O1,O3}。在并发情况下执行UNDO操作,要考虑系统一致性问题,要考虑首先是,UNDO操作要在哪个集合上,即集合的选择上。
4.1MOP算法(Multip1e Object version application)
ALGORITHM 2.MOP(O,MCGSi)
Foreach CG∈MCGS do
If O∈CGthen
O′:=UNREG(O,CG);
makeVisible(O′,CG);
通过遍历MCGS,如果O属于CG,就产生O’,标出这个CG。
4.2版本移除
比如操作了O3,这次要移除O3,那么系统就只要在CG2上执行版本移除,而不要考虑CG1。
算法MOVER(Multiple Object Version Removal)
ALGORITHM 3.MOVER(O,MCGSi):MCGSi-1
1.MCGSi-1:={ };M:={ };
2.Remove O from all CG∈MCGSi;
3.For each CG∈MCGSido
M:=M+CG;
4.MCGSi-1:=MCGSi-M;
例子O2操作执行UNDO,执行MOVER,CG1={O1,O4},CG2={O1,O3}。O4选择执行UNDO,从集合中移除,CG1={O1},CG2={O1,O3}。
5.UNDO/REDO算法
由于需要执行不同的任务UNDO和REDO,设计出算法4和5两种不同的算法来完成撤销和重做操作。当选择操作O执行UNDO/REDO,UNDO命令包含O的标识符将在本地生成,执行后传播到远程站点。以确定执行撤消命令重新要求撤消/重做操作。这可以通过在HB中搜索操作来完成匹配撤消命令中指定的标识符。一旦找到O,如果O未标记,则调用UNDO(O)。否则调用REDO(O)。自动执行撤销和重做算法很重要的一点是中间没有执行任何其他操作。
ALGORITHM 4.Undo(O)
1.NCGSi:=TOVER(O);
2.MOP(O,MCGSi);
3.MCGSi-1:=MOVER(O,MCGSi);
4.Mark(O);
UNDO算法
ALGORITHM 5.Redo(O)
1.MCGSi-1:=ROVER(O);
2.MCGSi:=MOVIC(O,MCGSi-1);
3.MOP(O,MCGSi);
4.Mark(O);
REDO算法
虽然在初始MCGS系统中,ROVER可用于两种算法,但它仅用于REDO。UNDO仍然使用TOVER算法,因为在MCGS中,UNDO更需要TOVER算法,TOVER算法更加有效。MOVER算法用来处理UNDO的版本删除。REDO使用MOVIC算法进行版本再建,决定使用哪个版本的操作。
两种算法都使用MOP。然而,在MOVER和MOVIC两种算法中以相反的顺序被调用。这是由于MOP要求的先决条件,需要撤消/重做的操作应该在存在于MCGS中。在UNDO中,在执行算法MOVER之前调用MOP,因为在执行MOVER后,O被从MCGS删除。在REDO中,MOP在MOVIC之后被调用,因为在执行MOVIC出现之后,O被添加到MCGS中。最后调用Mark函数标记或取消标记操作。
本发明的主要效果如下:
1)对象图形操作的撤消/重做效果(GU和GR规则);
2)生成的UNREG算法,应用于当前状态的对象时的操作,将在该对象上产生正确的撤消/重做效果;
3)在相同对象的不同版本上生成确保正确效果的MOP算法;
4)移除过时版本的MOVER算法;
5)ROVER方案提供了对对象执行REDO操作,执行MOVIC算法并重新创建所需的版本。
Claims (6)
1.一种协同图形编辑撤销重做的方法,其特征在于:所述方法基于图形协同编辑构建编辑对象,包括如下步骤:
(1)基于图形协同编辑构建编辑对象;
(2)通过复制文档创建本地化操作站点;
(3)远程广播站点,找准冲突点;
(4)协同编辑操作选择,执行操作。
2.根据权利要求1所述的一种协同图形编辑撤销重做的方法,其特征在于:所述方法包括对单个对象及一个以上版本编辑文档进行协同编辑操作,所述对象包括图形对象或文档。
3.根据权利要求2所述的一种协同图形编辑撤销重做的方法,其特征在于:所述图像对象包括线条、矩形和圆形。
4.根据权利要求2所述的一种协同图形编辑撤销重做的方法,其特征在于:所述协同编辑操作包括对象创建、对象更新、对象撤销和对象重做,撤销为UNDO操作,重做为REDO操作。
5.根据权利要求4所述的一种协同图形编辑撤销重做的方法,其特征在于:所述方法的目标对象为图形,进行REDO操作,则图形重做包括如下两种:
GR1:给定目标对象G的任何操作O,如果G的状态中包含了覆盖O的操作,然后重做O将不会对G产生可见的结果;
GR2:给定目标对象G的任何操作O,如果在状态G中没有覆盖O的任何操作,则重做O,在目标对象G上产生操作O的可见效果;
所述图像目标对象的操作编辑为针对目标图形对象G,G的状态中操作O已经被其它操作覆盖,则REDO操作O,不会在对象G产生一个可以看见的效果;如果没有任何操作覆盖了操作O,那么REDO操作O,则会在对象G上产生操作O带来的可见效果。
6.根据权利要求4所述的一种协同图形编辑撤销重做的方法,其特征在于:所述方法的目标对象为图形,图形撤销包括如下两种:
GU1:给定操作O,在对象G上O的效果被覆盖,则撤消O将不会在G上产生可见的效果;
GU2:给定在对象G上有可见效果任意操作O。当Ox覆盖了操作O时,如果撤销O,则会产生Ox在G上的效果;
所述图形对象G,状态中的操作O,如果已经被其它操作覆盖,那么UNDO操作O,不会在图形对象G上产生一个可见的效果;如果图形对象G上的有可见效果的操作O已经被另一个操作Ox覆盖,那么UNDO操作O,则会在对象G上产生操作Ox的执行效果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811206679.4A CN109446502A (zh) | 2018-10-17 | 2018-10-17 | 一种协同图形编辑撤销重做的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811206679.4A CN109446502A (zh) | 2018-10-17 | 2018-10-17 | 一种协同图形编辑撤销重做的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109446502A true CN109446502A (zh) | 2019-03-08 |
Family
ID=65546663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811206679.4A Pending CN109446502A (zh) | 2018-10-17 | 2018-10-17 | 一种协同图形编辑撤销重做的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109446502A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114816593A (zh) * | 2022-06-27 | 2022-07-29 | 天津联想协同科技有限公司 | 一种命令的执行方法、装置及可读存储介质 |
CN117252159A (zh) * | 2023-08-03 | 2023-12-19 | 吉贝克信息技术(北京)有限公司 | 一种支持撤销重做的多人协作的在线xbrl编辑器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7979804B1 (en) * | 2003-04-28 | 2011-07-12 | Adobe Systems Incorporated | Cross-view undo/redo for multi-view editing environments |
CN102355478A (zh) * | 2011-07-12 | 2012-02-15 | 北京大学 | 基于半分布式实时协同编辑软件的协同处理方法 |
CN103838459A (zh) * | 2012-11-26 | 2014-06-04 | 北京华大九天软件有限公司 | 一种支持对每个设计独立撤销与重做的编辑方法 |
US20160173543A1 (en) * | 2014-12-11 | 2016-06-16 | LiveLoop, Inc. | Method and system for concurrent collaborative undo operations in computer application software |
CN107003879A (zh) * | 2014-12-11 | 2017-08-01 | 利夫卢珀股份有限公司 | 用于计算机应用软件中的同时协同撤销操作的方法和系统 |
-
2018
- 2018-10-17 CN CN201811206679.4A patent/CN109446502A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7979804B1 (en) * | 2003-04-28 | 2011-07-12 | Adobe Systems Incorporated | Cross-view undo/redo for multi-view editing environments |
CN102355478A (zh) * | 2011-07-12 | 2012-02-15 | 北京大学 | 基于半分布式实时协同编辑软件的协同处理方法 |
CN103838459A (zh) * | 2012-11-26 | 2014-06-04 | 北京华大九天软件有限公司 | 一种支持对每个设计独立撤销与重做的编辑方法 |
US20160173543A1 (en) * | 2014-12-11 | 2016-06-16 | LiveLoop, Inc. | Method and system for concurrent collaborative undo operations in computer application software |
CN107003879A (zh) * | 2014-12-11 | 2017-08-01 | 利夫卢珀股份有限公司 | 用于计算机应用软件中的同时协同撤销操作的方法和系统 |
Non-Patent Citations (2)
Title |
---|
DAVID CHEN, CHENGZHENG SUN: "Undoing any operation in collaborative graphics editing systems", 《PROCEEDINGS OF THE 2001 ACM INTERNATIONAL CONFERENCE ON SUPPORTING GROUP WORK》, 3 October 2001 (2001-10-03), pages 197 * |
李春萍, 窦万峰: "实时协同图形编辑系统中的对象版本管理", 计算机应用, no. 1, 30 June 2004 (2004-06-30), pages 331 - 333 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114816593A (zh) * | 2022-06-27 | 2022-07-29 | 天津联想协同科技有限公司 | 一种命令的执行方法、装置及可读存储介质 |
CN117252159A (zh) * | 2023-08-03 | 2023-12-19 | 吉贝克信息技术(北京)有限公司 | 一种支持撤销重做的多人协作的在线xbrl编辑器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10552780B2 (en) | System to construct an improved view of a process | |
Jain et al. | Security games with arbitrary schedules: A branch and price approach | |
AU626006B2 (en) | Methods and apparatus for transforming machine language program control into high-level language constructs by manipulating graphical program representations | |
US20090150860A1 (en) | Method and system for combining quality assurance and model transformations in a business-driven development environment | |
Lee et al. | Human error mode identification for NPP main control room operations using soft controls | |
CN104866585B (zh) | 一种试验试飞数据综合处理系统 | |
CN107145344A (zh) | 在基于图的程序中指定组件 | |
CN106687918A (zh) | 编译基于图的程序规范 | |
Mondal et al. | SPCP-Miner: A tool for mining code clones that are important for refactoring or tracking | |
CN103473076B (zh) | 一种代码版本的发布方法及系统 | |
CN109446502A (zh) | 一种协同图形编辑撤销重做的方法 | |
CN105074587B (zh) | 系统开发装置、方法以及程序 | |
CN106687919A (zh) | 管理用于控制任务的状态 | |
US20210263833A1 (en) | Code Generation Platform with Debugger | |
CN106605209A (zh) | 控制数据处理任务 | |
Gabrel et al. | Optimal and automatic transactional web service composition with dependency graph and 0-1 linear programming | |
CN107728996A (zh) | 一种git分支管理方法及装置 | |
Grati et al. | Extracting sequence diagrams from execution traces using interactive visualization | |
CN113168497A (zh) | 改进的电子表格和用于更新电子表格的方法 | |
CN102413166B (zh) | 分布式交易方法及其系统 | |
WO2021013871A1 (en) | Computer implemented method, computer program and physical computing environment | |
Zinenko et al. | Manipulating visualization, not codes | |
Dumas et al. | Robotic Process Mining. | |
CN109582368A (zh) | 用于将单一静态指派指令映射至数据流架构中的数据流图上的方法和装置 | |
Gonçales et al. | Comparison of design models: A systematic mapping study |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220506 Address after: 361000 unit 503, No. 67, xishanwei Road, phase III, software park, Xiamen, Fujian Applicant after: Xiamen kalente Technology Co.,Ltd. Address before: 210100 No. 33, Dongqi Road, Jiangning District, Nanjing City, Jiangsu Province Applicant before: NANJING CHUIYU NETWORK TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right |