CN114547047A - 一种在线协作绘图方法、装置、设备及存储介质 - Google Patents
一种在线协作绘图方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114547047A CN114547047A CN202111580661.2A CN202111580661A CN114547047A CN 114547047 A CN114547047 A CN 114547047A CN 202111580661 A CN202111580661 A CN 202111580661A CN 114547047 A CN114547047 A CN 114547047A
- Authority
- CN
- China
- Prior art keywords
- drawing board
- terminal
- board data
- instruction
- server
- 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 53
- 230000004044 response Effects 0.000 claims abstract description 27
- 230000009471 action Effects 0.000 claims description 13
- 238000012544 monitoring process Methods 0.000 claims description 13
- 238000012217 deletion Methods 0.000 claims description 8
- 230000037430 deletion Effects 0.000 claims description 8
- 230000000694 effects Effects 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 230000001360 synchronised effect Effects 0.000 abstract description 5
- 241000699666 Mus <mouse, genus> Species 0.000 description 48
- 230000008569 process Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000010187 selection method Methods 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
- G06F16/2343—Locking methods, e.g. distributed locking or locking implementation details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/206—Drawing of charts or graphs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种在线协作绘图方法、装置、设备及存储介质,本发明通过响应于第一终端的第一指令打开画板并生成第一画板数据,响应于第二终端的第二指令打开画板以接收服务器的第一画板数据,响应于第一终端的第三指令编辑画板并生成第二画板数据,而服务器根据第二画板数据和第一画板数据进行差异比较生成补丁,并将补丁发送至第二终端中对第一画板数据进行更新,使得当使用第一终端的用户需要对第一画板数据进行调整时,可以通过服务器将编辑调整后的第二画板数据以补丁的形式同步第二终端供其他用户观看,实现远程的在线协作绘图,有利于提高效率和用户的绘图体验,本发明可广泛应用于绘图技术领域。
Description
技术领域
本发明涉及绘图领域,尤其是一种在线协作绘图方法、装置、设备及存储介质。
背景技术
在远程办公场景中,团队沟通一直是核心需求,目前团队沟通用的最多的就是带共享屏幕功能的视频/语音会议,这样可以对着文档一边放映一边讲解。如果有多人讲解时,就需要切换到另外一个人共享屏幕。然而,这种会议方式存在一定的局限性,企业中的流程图等可能会由多个角色、多个部门甚至多个合作伙伴协作来完成的,流程图的绘制需要由各个部门相关人员聚在一起开会讨论来确定,而后续若需要修改调整又需要再次聚集相关人员而不能进行远程的在线协作修改调整,效率低且体验差,因此需要寻求解决方案。
发明内容
有鉴于此,为了解决上述技术问题,本发明的目的是提供一种在线协作绘图方法、装置、设备及存储介质。
本发明实施例采用的技术方案是:
一种在线协作绘图方法,包括:
响应于第一终端的第一指令打开画板并生成第一画板数据;所述第一画板数据发送至服务器进行存储;
响应于第二终端的第二指令打开画板以接收所述服务器的第一画板数据;
响应于所述第一终端的第三指令编辑画板并生成第二画板数据;所述第二画板数据发送至所述服务器进行存储,以使所述服务器根据所述第二画板数据和所述第一画板数据进行差异比较生成补丁,并将所述补丁发送至所述第二终端中对所述第一画板数据进行更新。
进一步,所述方法还包括:
响应于所述第一终端的所述第一指令使所述第一终端与所述服务器建立长连接并建立会话组;
响应于所述第二终端的所述第二指令使所述第二终端加入所述会话组并与所述服务器建立长连接。
进一步,所述响应于所述第一终端的第三指令编辑所述画板并生成第二画板数据,包括:
响应于所述第一终端的第三指令,进行增加元素、删除元素以及改变元素属性中的至少一种,生成所述第二画板数据。
进一步,所述第一画板数据包括至少一第一元素,所述第二画板数据包括至少一第二元素,所述根据所述第二画板数据和所述第一画板数据进行差异比较生成补丁,包括:
比较所述第一元素的ID与所述第二元素的ID;
当所述第一元素的ID与所述第二元素的ID相同,获取所述第一元素的元素属性与所述第二元素的元素属性,根据所述第一元素的元素属性与所述第二元素的元素属性的差异生成差异集;
和/或将与所有所述第二元素的ID均不相同的所述第一元素的ID作为第一目标ID,根据所述第一目标ID生成删除元素集;
和/或将与所有所述第一元素的ID均不相同的所述第二元素的ID作为第二目标ID,根据所述第二目标ID生成增加元素集;
根据所述差异集、所述删除元素集以及所述增加元素集中的至少一个,生成所述补丁。
进一步,所述对所述第一画板数据进行更新,包括:
对所述补丁中的第一元素或第二元素进行锁定;所述锁定用于限制所述第二终端的并发操作;
根据所述补丁中的所述差异集更改所述第一画板数据中对应的第一元素的元素属性;
和/或,根据所述补丁中的所述删除元素集删除所述第一目标ID对应的第一元素;
和/或,根据所述补丁中的所述增加元素集增加所述第二目标ID对应的第二元素。
进一步,所述方法还包括:
监听所述第一终端的鼠标动作以获取鼠标事件;
将所述鼠标事件推送至服务器的推送队列;所述推送队列发送至所述第二终端,以在所述第二终端的画板中显示所述鼠标事件。
进一步,所述第一画板数据包括至少一第一元素,所述方法还包括:
监听所述第一终端的所述第一元素的触发事件;
当所述触发事件为选中事件,创建突出显示边框;所述显示边框通过服务器发送至所述第二终端的画板中显示;
和/或当所述触发事件为操作事件,确定所述第一元素的坐标状态集;所述坐标状态集通过服务器发送至所述第二终端,以在所述第二终端的画板中根据所述坐标状态集生成模拟动作效果。
本发明实施例还提供一种在线协作绘图装置,包括:
第一响应模块,用于响应于第一终端的第一指令打开画板并生成第一画板数据;所述第一画板数据发送至服务器进行存储;
第二响应模块,用于响应于第二终端的第二指令打开画板以接收所述服务器的第一画板数据;
第三响应模块,用于响应于所述第一终端的第三指令编辑画板并生成第二画板数据;所述第二画板数据发送至所述服务器进行存储,以使所述服务器根据所述第二画板数据和所述第一画板数据进行差异比较生成补丁,并将所述补丁发送至所述第二终端中对所述第一画板数据进行更新。
本发明实施例还提供一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现所述方法。
本发明实施例还提供一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现所述方法。
本发明的有益效果是:通过响应于第一终端的第一指令打开画板并生成第一画板数据,第一画板数据发送至服务器进行存储,响应于第二终端的第二指令打开画板以接收服务器的第一画板数据,响应于第一终端的第三指令编辑画板并生成第二画板数据,第二画板数据发送至服务器进行存储,以使服务器根据第二画板数据和第一画板数据进行差异比较生成补丁,并将补丁发送至第二终端中对第一画板数据进行更新,使得当使用第一终端的用户需要对第一画板数据进行调整时,可以通过服务器将编辑调整后的第二画板数据以补丁的形式同步第二终端供其他用户观看,实现远程的在线协作绘图,有利于提高效率和用户的绘图体验。
附图说明
图1为本发明在线协作绘图方法的步骤流程示意图;
图2为本发明具体实施例更新第一画板数据的步骤示意图;
图3为本发明具体实施例鼠标监听的步骤示意图;
图4为本发明具体实施例触发事件监听的步骤示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
如图1所示,本发明实施例提供一种在线协作绘图方法,包括步骤S100-S300:
S100、响应于第一终端的第一指令打开画板并生成第一画板数据;第一画板数据发送至服务器进行存储。
可选地,本发明实施例中的第一终端、第二终端包括但不限于手机、平板电脑、电脑等,第一终端为第一用户使用的终端、第二终端为第二用户使用的终端,第一用户和第二用户可以通过其终端的软件、公众号、小程序或者页面(例如web浏览器的页面)打开画板并进行相应的绘图操作。可选地,第一指令包括但不限于通过鼠标或者键盘输入的指令。本发明实施例中,以web浏览器实现画板的打开和绘图为例进行在线协作绘图的说明。
具体地,当第一用户在第一终端中输入第一指令,此时第一终端响应于第一指令打开第一终端的画板,例如可以为打开新建的画板或者之前编辑过并存储的画板并生成第一画板数据。需要说明的是,第一画板数据可以包括至少一第一元素,第一元素包括但不限于文字、线条、图像、点或者符号等等;第一画板数据由第一终端发送至服务器进行存储。
本发明实施例中,在第一终端响应于第一指令打开画板的同时或者打开画板之后,第一终端与服务器建立长连接并建立会话组。
S200、响应于第二终端的第二指令打开画板以接收服务器的第一画板数据。
同样地,第二指令包括但不限于通过鼠标或者键盘输入的指令。具体地,当第二用户在第二终端中输入第二指令,此时第二终端响应于第二指令使第二终端加入会话组并与服务器建立长连接,此时第一用户与第二用户位于同一个会话组内,此时第二终端打开第二终端的画板,然后服务器将存储的第一画板数据发送至第二终端中由第二终端接收,此时相当于第二终端的画板中显示第一画板数据,即实现第一终端的画板与第二终端的画板的同步。
S300、响应于第一终端的第三指令编辑画板并生成第二画板数据;第二画板数据发送至服务器进行存储,以使服务器根据第二画板数据和第一画板数据进行差异比较生成补丁,并将补丁发送至第二终端中对第一画板数据进行更新。
可选地,步骤S300中响应于第一终端的第三指令编辑画板并生成第二画板数据,包括步骤S301:
S301、响应于第一终端的第三指令,进行增加元素、删除元素以及改变元素属性中的至少一种,生成第二画板数据。
同样地,第三指令包括但不限于通过鼠标或者键盘输入的指令。本发明实施例中,当第一用户需要对第一终端的画板上进行编辑时,输入第三指令,第一终端响应于第三指令对第一画板数据中的第一元素进行增加元素、删除元素以及改变元素属性中的至少一种,从而得到第二画板数据,第二画板数据从第一终端发送至服务器进行存储,此时第二画板数据中的元素记为第二元素,因此第二画板数据包括至少一第二元素。
需要说明的是,增加元素为增加第一元素,删除元素为删除第一元素,改变元素属性包括但不限于改变颜色、粗细、尺寸、下划线、坐标点等元素属性。
可选地,服务器可以根据第二画板数据和第一画板数据进行差异比较生成补丁,其中步骤S300中根据第二画板数据和第一画板数据进行差异比较生成补丁,包括步骤S311-S315:
S311、比较第一元素的ID与第二元素的ID。
S312、当第一元素的ID与第二元素的ID相同,获取第一元素的元素属性与第二元素的元素属性,根据第一元素的元素属性与第二元素的元素属性的差异生成差异集。
需要说明的是,每一第一元素以及第二元素被建立时会生成对应的ID,因此在增加第一元素时,会产生新的第一元素以及新的ID,相应地在删除第一元素时,该第一元素的ID亦删除,而在修改第一元素的元素属性时,元素属性改变而ID不变,第二元素类似不再赘述。
可选地,在比较第一元素的ID与第二元素的ID时,将所有第一元素的ID都与第二元素的ID比较,当第一元素的ID与第二元素的ID相同,即该第二元素实则是第一画板数据中对应的第一元素,此时获取第一元素的元素属性与第二元素的元素属性,比较两者的元素属性是否有差异,若有差异(例如颜色改变了),将该差异加入差异集中。需要说明的是,当第一元素的元素属性与第二元素的元素属性没有差异则不生成差异集或者生成为空集合的差异集。
S313、将与所有第二元素的ID均不相同的第一元素的ID作为第一目标ID,根据第一目标ID生成删除元素集。
可选地,当某一第一元素的ID与所有第二元素的ID均不相同,此时意味着该第一元素在第二画板数据中被删除,此时将该第一元素的ID作为第一目标ID,将第一目标ID或者第一目标ID对应的第一元素加入删除元素集中。需要说明的是,删除元素集中的内容代表要删除的内容,当不存在上述第一目标ID则不生成删除元素集或者生成为空集合的删除元素集。
S314、将与所有第一元素的ID均不相同的第二元素的ID作为第二目标ID,根据第二目标ID生成增加元素集。
可选地,当某一第二元素的ID与所有第一元素的ID均不相同,此时意味着该第二元素在第二画板数据中是新增加的元素,此时将该第二元素的ID作为第二目标ID,将第二目标ID或者第二目标ID对应的第二元素加入增加元素集中。需要说明的是,增加元素集中的内容代表要增加的内容,当不存在上述第二目标ID则不生成增加元素集或者生成为空集合的增加元素集。
S315、根据差异集、删除元素集以及增加元素集中的至少一个,生成补丁。
需要说明的是,S312、S313和S314的执行顺序任意,本发明实施例中以包括S312、S313和S314为例进行说明,补丁包括差异集、删除元素集以及增加元素集;而一些实施方式中可以包括S312、S313和S314中的一种或者两种,相应地在生成补丁时,补丁中包括差异集、删除元素集以及增加元素集中的一个或者两种,或者补丁可以包括差异集、删除元素集以及增加元素集,而差异集、删除元素集以及增加元素集中的一个或两个为空集合。
可选地,服务器可以将补丁发送至第二终端中对第一画板数据进行更新,步骤S300中对第一画板数据进行更新,包括步骤S321-S324:
S321、对补丁中的第一元素或第二元素进行锁定。
本发明实施例中,锁定用于限制第二终端的并发操作,防止第二用户的并发操作问题,有利于补丁对第一画板数据进行更新。需要说明的是,在对第一画板数据进行更新时通过长连接进行更新;利用补丁的更新的时间间隔可以根据需要设定,例如实时更新、设置预设时间间隔(如1秒、几百毫秒)等等,本发明实施例中为实时更新,其他实施例中不作具体限定。
S322、根据补丁中的差异集更改第一画板数据中对应的第一元素的元素属性。
具体地,根据差异集更改第二终端中的第一画板数据对应的第一元素的元素属性,使得第二终端的画板显示第一用户编辑画板后得到的对应的第二元素,即将第二画板数据同步至第二终端的画板中更新渲染显示。
S323、根据补丁中的删除元素集删除第一目标ID对应的第一元素。
S324、根据补丁中的增加元素集增加第二目标ID对应的第二元素。
具体地,通过步骤S322、S323以及S324完成将第二画板数据同步至第二终端的画板中更新显示。需要说明的是,S322、S323和S324的执行顺序任意,本发明实施例中以包括S312、S313和S314为例进行说明;而一些实施方式中可以包括S322、S323和S324中的一种或者两种,根据补丁中的实际内容而定。
如图2所示,以具体实施例说明更新第一画板数据的步骤:推送开始,获取旧的画板和新的画板,即相当于获取第一画板数据以及第二画板数据,判断画板元素ID(比较第一元素的ID与第二元素的ID):
没有旧元素:相当于第一画板数据中的某一第一元素被删除,推送删除旧元素(即第一目标ID对应的第一元素)并生成删除元素集;
有新旧元素:相当于第二画板数据中的新增加了某一第二元素,推送新增新元素(即第二目标ID对应的第二元素)并生成增加元素集;
当元素ID相同,即存在第一元素的ID与第二元素的ID相同的情况,比较第一元素的ID与第二元素的ID的差异:具体地获取该两个元素的属性,循环新旧元素的属性并记录差异,即记录第一元素的ID与第二元素的ID的所有元素属性差异,生成差异集;
根据删除元素集、增加元素集以及差异集构建补丁,然后将补丁通过服务器发送至第二终端中,进行相应的删除元素、新增元素以及利用获取的差异集循环差异元素的属性并为元素幅值(即根据差异集更改第一画板数据中对应的第一元素的元素属性),更新结束。
可选地,在线协作绘图方法还包括步骤S400以及S500,S300、S400与S500执行顺序任意。可选地,步骤S400包括步骤S410-S420:
S410、监听第一终端的鼠标动作以获取鼠标事件。
S420、将鼠标事件推送至服务器的推送队列;推送队列发送至第二终端,以在第二终端的画板中显示鼠标事件。
可选地,在第二终端的画板设置一个新的最高层级的隐藏层图层,通过SVG(可缩放矢量图形)方式在隐藏层图层画出鼠标图案,并可以为不同用户的鼠标对应的鼠标图案加上不同颜色并标注用户名。具体地,监听第一终端的鼠标动作以获取鼠标事件(即本地local的鼠标事件),鼠标事件包括但不限于移动、鼠标右键菜单或者鼠标左键选中等,然后将鼠标事件推送至服务器的推送队列,即相当于会话组中的用户队列;推送队列发送至第二终端并在第二终端的画板的隐藏层图层通过鼠标图案显示鼠标事件。可以理解的是,还可以监听第二终端的鼠标动作以获取鼠标事件(即远端remote的鼠标事件),然后进行类似处理,使得第一终端的画板显示远端remote的鼠标事件,不作赘述。
本发明实施例通过步骤S400,能够实现各个用户的鼠标同步显示,例如第二用户可以在第二终端的画板中看到第一用户的鼠标的移动、鼠标右键菜单或者鼠标左键选中等鼠标事件,使得协作绘图更清晰,展示效果更丰富。
如图3所示,以具体实施例说明鼠标监听的步骤:开始鼠标同步过程,在隐藏层图层中SVG(可缩放矢量图形)绘制画出鼠标,监听鼠标动作,具体可以包括监听本地local以及远端remote从而调用鼠标事件(远端remote的鼠标事件未示出),然后将推送鼠标事件至推送队列使得本地local以及远端remote的显示对方的鼠标事件。另外,在推送至推送队列完成后以及调用鼠标事件完成后,返回监听鼠标动作的步骤进行不断循环。
需要说明的是,鼠标的监听、推送队列的推送的时间频率可以根据需要设定,可以采用定时推送和获取数据绘制,控制时间频率,使同步既不会对服务端产生压力,又不会带来很高延迟。例如,前端节流控制每500毫秒将鼠标事件推送至服务器的推送队列,每400毫秒获取其他用户的推送队列的鼠标事件进行绘制和显示。
可选地,步骤S500包括步骤S510,以及S520与S530中的至少之一,其中S520与S530执行顺序任意:
S510、监听第一终端的第一元素的触发事件。
需要说明的是,触发事件包括但不限于选中事件和操作事件,选中事件包括但不限于选中某一第一元素,操作事件包括拖拽或翻转第一元素。
S520、当触发事件为选中事件,创建突出显示边框;显示边框通过服务器发送至第二终端的画板中显示。
可选地,突出显示边框包括但不限于为通过加粗、不同颜色的高亮显示而突出的第一元素的边框,显示边框通过服务器发送至第二终端的画板中显示,例如根据该第一元素的坐标和状态在第二终端的画板的对应位置上绘制突出显示边框以显示。
例如,当突出显示边框为不同颜色突出的第一元素的边框,此时该边框的颜色可以与用户的鼠标对应的鼠标图案的颜色相同。
S530、当触发事件为操作事件,确定第一元素的坐标状态集;坐标状态集通过服务器发送至第二终端,以在第二终端的画板中根据坐标状态集生成模拟动作效果。
可选地,坐标状态集可以包括第一元素原始的坐标、拖拽或翻转过程中不同时刻对应的状态的不同坐标以及拖拽或翻转完成时第一元素最终的坐标。本发明实施例中,坐标状态集通过服务器发送至第二终端,以在第二终端的画板中根据坐标状态集根据第一元素原始的坐标、拖拽或翻转过程中不同时刻对应的状态的不同坐标以及拖拽或翻转完成时第一元素最终的坐标模拟拖拽或翻转的整个过程,即生成模拟动作效果。可以理解的是,本地local以及远端remote的方法类似不再赘述。
本发明实施例通过步骤S500,能够实现各个用户之间的触发事件进行同步显示,生成对应的模拟动作效果,提升用户的绘图体验,使得协作绘图更清晰,展示效果更丰富,更加真实。
如图4所示,以具体实施例说明触发事件监听的步骤:开始同步过程,监听选择:包括本地local以及远端remote的监听,确定触发选择方法(即触发事件),若为选中事件,创建高亮边框并在第二终端的画板的相应位置上绘制高亮边框;若为操作事件(以翻转为例)则;计算第一元素的坐标和状态(确定坐标状态集),并根据坐标和状态进行操作保持、循环绘制,当操作结束后绘制元素的最终位置(第一元素的最终坐标),并对第二终端的画板的该最终位置的第一元素绘制高亮边框。
本发明实施例还提供一种在线协作绘图装置,包括:
第一响应模块,用于响应于第一终端的第一指令打开画板并生成第一画板数据;第一画板数据发送至服务器进行存储;
第二响应模块,用于响应于第二终端的第二指令打开画板以接收服务器的第一画板数据;
第三响应模块,用于响应于第一终端的第三指令编辑画板并生成第二画板数据;第二画板数据发送至服务器进行存储,以使服务器根据第二画板数据和第一画板数据进行差异比较生成补丁,并将补丁发送至第二终端中对第一画板数据进行更新。
上述方法实施例中的内容均适用于本装置实施例中,本装置实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
本发明实施例还提供了一种电子设备,电子设备包括处理器和存储器,存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现前述实施例的在线协作绘图方法。本发明实施例的电子设备包括但不限于手机、平板电脑、电脑等任意的智能终端;需要说明的是,电子设备可以包括多台智能终端。
上述方法实施例中的内容均适用于本设备实施例中,本设备实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
本发明实施例还提供一种计算机可读存储介质,存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现前述实施例的在线协作绘图方法。
本发明实施例还提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前述实施例的在线协作绘图方法。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。
以上,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种在线协作绘图方法,其特征在于,包括:
响应于第一终端的第一指令打开画板并生成第一画板数据;所述第一画板数据发送至服务器进行存储;
响应于第二终端的第二指令打开画板以接收所述服务器的第一画板数据;
响应于所述第一终端的第三指令编辑画板并生成第二画板数据;所述第二画板数据发送至所述服务器进行存储,以使所述服务器根据所述第二画板数据和所述第一画板数据进行差异比较生成补丁,并将所述补丁发送至所述第二终端中对所述第一画板数据进行更新。
2.根据权利要求1所述在线协作绘图方法,其特征在于:所述方法还包括:
响应于所述第一终端的所述第一指令使所述第一终端与所述服务器建立长连接并建立会话组;
响应于所述第二终端的所述第二指令使所述第二终端加入所述会话组并与所述服务器建立长连接。
3.根据权利要求1所述在线协作绘图方法,其特征在于:所述响应于所述第一终端的第三指令编辑所述画板并生成第二画板数据,包括:
响应于所述第一终端的第三指令,进行增加元素、删除元素以及改变元素属性中的至少一种,生成所述第二画板数据。
4.根据权利要求1-3任一项所述在线协作绘图方法,其特征在于:所述第一画板数据包括至少一第一元素,所述第二画板数据包括至少一第二元素,所述根据所述第二画板数据和所述第一画板数据进行差异比较生成补丁,包括:
比较所述第一元素的ID与所述第二元素的ID;
当所述第一元素的ID与所述第二元素的ID相同,获取所述第一元素的元素属性与所述第二元素的元素属性,根据所述第一元素的元素属性与所述第二元素的元素属性的差异生成差异集;
和/或将与所有所述第二元素的ID均不相同的所述第一元素的ID作为第一目标ID,根据所述第一目标ID生成删除元素集;
和/或将与所有所述第一元素的ID均不相同的所述第二元素的ID作为第二目标ID,根据所述第二目标ID生成增加元素集;
根据所述差异集、所述删除元素集以及所述增加元素集中的至少一个,生成所述补丁。
5.根据权利要求4所述在线协作绘图方法,其特征在于:所述对所述第一画板数据进行更新,包括:
对所述补丁中的第一元素或第二元素进行锁定;所述锁定用于限制所述第二终端的并发操作;
根据所述补丁中的所述差异集更改所述第一画板数据中对应的第一元素的元素属性;
和/或,根据所述补丁中的所述删除元素集删除所述第一目标ID对应的第一元素;
和/或,根据所述补丁中的所述增加元素集增加所述第二目标ID对应的第二元素。
6.根据权利要求1-3任一项所述在线协作绘图方法,其特征在于:所述方法还包括:
监听所述第一终端的鼠标动作以获取鼠标事件;
将所述鼠标事件推送至服务器的推送队列;所述推送队列发送至所述第二终端,以在所述第二终端的画板中显示所述鼠标事件。
7.根据权利要求1-3任一项所述在线协作绘图方法,其特征在于:所述第一画板数据包括至少一第一元素,所述方法还包括:
监听所述第一终端的所述第一元素的触发事件;
当所述触发事件为选中事件,创建突出显示边框;所述显示边框通过服务器发送至所述第二终端的画板中显示;
和/或当所述触发事件为操作事件,确定所述第一元素的坐标状态集;所述坐标状态集通过服务器发送至所述第二终端,以在所述第二终端的画板中根据所述坐标状态集生成模拟动作效果。
8.一种在线协作绘图装置,其特征在于,包括:
第一响应模块,用于响应于第一终端的第一指令打开画板并生成第一画板数据;所述第一画板数据发送至服务器进行存储;
第二响应模块,用于响应于第二终端的第二指令打开画板以接收所述服务器的第一画板数据;
第三响应模块,用于响应于所述第一终端的第三指令编辑画板并生成第二画板数据;所述第二画板数据发送至所述服务器进行存储,以使所述服务器根据所述第二画板数据和所述第一画板数据进行差异比较生成补丁,并将所述补丁发送至所述第二终端中对所述第一画板数据进行更新。
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1-7中任一项所述方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1-7中任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111580661.2A CN114547047A (zh) | 2021-12-22 | 2021-12-22 | 一种在线协作绘图方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111580661.2A CN114547047A (zh) | 2021-12-22 | 2021-12-22 | 一种在线协作绘图方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114547047A true CN114547047A (zh) | 2022-05-27 |
Family
ID=81669248
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111580661.2A Pending CN114547047A (zh) | 2021-12-22 | 2021-12-22 | 一种在线协作绘图方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114547047A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100306004A1 (en) * | 2009-05-26 | 2010-12-02 | Microsoft Corporation | Shared Collaboration Canvas |
CN102508840A (zh) * | 2010-09-09 | 2012-06-20 | 微软公司 | 在线绘画的协作编辑 |
CN102646235A (zh) * | 2012-04-01 | 2012-08-22 | 杭州格畅科技有限公司 | 在线协同绘画的方法、客户端及服务器 |
CN104067202A (zh) * | 2012-12-31 | 2014-09-24 | 华为技术有限公司 | 鼠标同步的方法、装置和系统 |
US10063660B1 (en) * | 2018-02-09 | 2018-08-28 | Picmonkey, Llc | Collaborative editing of media in a mixed computing environment |
CN111488102A (zh) * | 2020-04-13 | 2020-08-04 | 支付宝(杭州)信息技术有限公司 | 图形动画的模块化编辑方法、终端、服务器及系统 |
CN111524210A (zh) * | 2020-04-10 | 2020-08-11 | 北京百度网讯科技有限公司 | 用于生成绘图的方法和装置 |
-
2021
- 2021-12-22 CN CN202111580661.2A patent/CN114547047A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100306004A1 (en) * | 2009-05-26 | 2010-12-02 | Microsoft Corporation | Shared Collaboration Canvas |
CN102508840A (zh) * | 2010-09-09 | 2012-06-20 | 微软公司 | 在线绘画的协作编辑 |
CN102646235A (zh) * | 2012-04-01 | 2012-08-22 | 杭州格畅科技有限公司 | 在线协同绘画的方法、客户端及服务器 |
CN104067202A (zh) * | 2012-12-31 | 2014-09-24 | 华为技术有限公司 | 鼠标同步的方法、装置和系统 |
US10063660B1 (en) * | 2018-02-09 | 2018-08-28 | Picmonkey, Llc | Collaborative editing of media in a mixed computing environment |
CN111524210A (zh) * | 2020-04-10 | 2020-08-11 | 北京百度网讯科技有限公司 | 用于生成绘图的方法和装置 |
CN111488102A (zh) * | 2020-04-13 | 2020-08-04 | 支付宝(杭州)信息技术有限公司 | 图形动画的模块化编辑方法、终端、服务器及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8010901B1 (en) | System and method for automated synchronized co-browsing | |
US9071615B2 (en) | Shared space for communicating information | |
US20040122898A1 (en) | Collaborative review of distributed content | |
CN102263772A (zh) | 基于三维技术的虚拟会议系统 | |
CN114500570B (zh) | 任务处理方法、装置、电子设备和计算机可读存储介质 | |
CN104486205A (zh) | 一种信息交互的方法与装置 | |
WO2020227428A1 (en) | System and method for role-based collaborative design of custom products based on manufacturing constraints | |
CN110297681A (zh) | 图像处理方法、装置、终端及存储介质 | |
CN109408213A (zh) | 协同任务处理方法、系统及存储介质 | |
CN107967103B (zh) | 用于信息处理的方法、装置和计算机可读存储介质 | |
CN112422405A (zh) | 消息互动方法、装置及电子设备 | |
CN111309211A (zh) | 图片处理方法、装置及存储介质 | |
CN114493541A (zh) | 任务创建方法、装置、电子设备、存储介质和程序产品 | |
CN112286422B (zh) | 一种信息显示方法及装置 | |
CN114547047A (zh) | 一种在线协作绘图方法、装置、设备及存储介质 | |
WO2023207570A1 (zh) | 一种文档展示方法及其相关设备 | |
CN105610849B (zh) | 分享标签的生成方法及装置、属性信息的显示方法及装置 | |
CN114884914B (zh) | 一种应用程序同屏交流方法、系统 | |
CN106790424A (zh) | 定时控制方法、客户端、服务器及定时控制系统 | |
CN115908654A (zh) | 基于虚拟形象的交互方法、装置、设备及存储介质 | |
CN115695355A (zh) | 数据共享方法、装置、电子设备及介质 | |
CN115378893A (zh) | 消息处理方法、装置、电子设备及可读存储介质 | |
CN108170397A (zh) | 数据显示方法、装置、设备及存储介质 | |
CN114063855A (zh) | 即时通讯软件的内容输入方法、装置、设备和介质 | |
CN113872849A (zh) | 消息交互方法、装置及电子设备 |
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 |