窗口吸附方法、装置及系统以及计算机存储介质与流程

文档序号:24377071发布日期:2021-03-23 11:11阅读:123来源:国知局
窗口吸附方法、装置及系统以及计算机存储介质与流程

本发明涉及图形界面显示技术领域,尤其涉及一种窗口吸附方法、一种窗口吸附装置、一种窗口吸附系统以及一种计算机存储介质。



背景技术:

在图形界面编辑过程中,往往涉及需要对多个窗口进行排列编辑,例如在音视频播控软件中常常需要编排播放画面的窗口。该过程不仅涉及编辑窗口的大小、位置、角度等基本信息,还涉及到窗口之间的排列编辑,比如吸附、对齐等操作。

在窗口与窗口的排列编辑中,现有技术中通常通过以下两种方式来实现:一是在移动当前窗口的过程中,反复计算当前窗口与窗口边界界面中的所有其他窗口之间的偏移量,进而通过所计算出的偏移量来确定目标吸附窗口,然而,在窗口数量比较多的情况下,吸附效率很低;二是在用户移动窗口的过程中不计算当前窗口与窗口边界界面中的所有其他窗口之间的偏移量,仅在用户释放鼠标的瞬间才计算当前窗口与显示界面上的其他窗口之间的偏移量从而根据所计算的偏移量确定目标吸附窗口,然而,这种方法用户体验差,无法在用户移动当前窗口过程中实现实时吸附。



技术实现要素:

因此,为克服现有技术中的缺陷与不足,本发明实施例提供一种窗口吸附方法、一种窗口吸附装置、一种窗口吸附系统以及一种计算机存储介质,其既能够实现在窗口编辑过程中实时吸附,又能够提高吸附效率。

一方面,本发明实施例提供的窗口吸附方法,包括:在窗口编辑界面上显示多个窗口;确定与所述多个窗口一一对应的多个虚拟边界;响应用户操作指令,移动所述多个窗口中的目标窗口;对所述目标窗口的虚拟边界与所述多个窗口中除所述目标窗口外的其他窗口的虚拟边界进行碰撞检测以生成可吸附窗口列表;以及根据所述可吸附窗口列表确定目标吸附窗口,并将所述目标窗口吸附至所述目标吸附窗口。

在上述方案中,通过为多个窗口确定一一对应的多个虚拟边界,进而对所述目标窗口的虚拟边界与所述多个窗口中除所述目标窗口外的其他窗口的虚拟边界进行碰撞检测以生成可吸附窗口列表,然后根据所述可吸附窗口列表确定目标吸附窗口,并将所述目标窗口吸附至所述目标吸附窗口,能够快速获得可吸附窗口列表,从而根据可吸附窗口列表确定目标吸附窗口,进而将目标窗口吸附至目标吸附窗口,提高了吸附效率,同时实现了在移动目标窗口过程中的实时吸附。

在本发明的一个实施例中,所述确定与所述多个窗口一一对应的所述多个虚拟边界具体为:根据吸附距离和所述多个窗口确定所述多个窗口对应的所述多个虚拟边界。

在本发明的一个实施例中,所述对所述多个窗口的所述多个虚拟边界执行碰撞检测以获得可吸附窗口列表具体为:根据所述多个窗口的所述多个虚拟边界利用碰撞检测算法获得所述多个窗口中除所述目标窗口外的其他窗口与所述目标窗口的虚拟边界相交的虚拟边界对应的至少一个可吸附窗口以生成所述可吸附窗口列表,其中,所述可吸附窗口列表包括所述多个窗口中除所述目标窗口外的其他窗口与所述目标窗口的虚拟边界相交的虚拟边界对应的至少一个可吸附窗口。

在本发明的一个实施例中,所述根据所述可吸附窗口列表确定目标吸附窗口,并将所述目标窗口吸附至所述目标吸附窗口具体为:计算所述目标窗口与所述可吸附窗口列表中的所述至少一个可吸附窗口之间的偏移量;根据所述偏移量确定所述目标吸附窗口;以及将所述目标窗口吸附至目标吸附窗口。

在本发明的一个实施例中,所述根据所述偏移量确定所述目标吸附窗口具体为:当所述可吸附窗口列表中存在一个可吸附窗口与所述目标窗口之间的偏移量最小时,将所述一个可吸附窗口确定为所述目标可吸附窗口;以及当所述可吸附窗口列表中存在多个可吸附窗口与所述目标窗口之间的偏移量最小时,将所述多个可吸附窗口中在所述可吸附窗口列表中的第一个可吸附窗口确定为所述目标吸附窗口。

另一方面,本发明实施例提供的一种窗口吸附装置,包括:窗口显示模块,用于在窗口编辑界面上显示多个窗口;虚拟边界确定模块,用于确定与所述多个窗口一一对应的多个虚拟边界;目标窗口移动模块,用于响应用户操作指令,移动所述多个窗口中的目标窗口;碰撞检测模块,用于对所述目标窗口的虚拟边界与所述多个窗口中除所述目标窗口外的其他窗口的虚拟边界进行碰撞检测以生成可吸附窗口列表;以及窗口吸附模块,用于根据所述可吸附窗口列表确定目标吸附窗口,并将所述目标窗口吸附至所述目标吸附窗口。

在本发明的一个实施例中,所述虚拟边界确定模块具体用于:根据吸附距离和所述多个窗口确定所述多个窗口对应的所述多个虚拟边界。

在本发明的一个实施例中,所述碰撞检测模块具体用于:根据所述多个窗口的所述多个虚拟边界利用碰撞检测算法获得所述多个窗口中除所述目标窗口外的其他窗口与所述目标窗口的虚拟边界相交的虚拟边界对应的至少一个可吸附窗口以生成所述可吸附窗口列表,其中,所述可吸附窗口列表包括所述多个窗口中除所述目标窗口外的其他窗口与所述目标窗口的虚拟边界相交的虚拟边界对应的至少一个可吸附窗口。

在上述方案中,通过为多个窗口确定一一对应的多个虚拟边界,进而对所述目标窗口的虚拟边界与所述多个窗口中除所述目标窗口外的其他窗口的虚拟边界进行碰撞检测以生成可吸附窗口列表,然后根据所述可吸附窗口列表确定目标吸附窗口,并将所述目标窗口吸附至所述目标吸附窗口,能够快速获得可吸附窗口列表,从而根据可吸附窗口列表确定目标吸附窗口,进而将目标窗口吸附至目标吸附窗口,提高了吸附效率,同时实现了在移动目标窗口过程中的实时吸附。

再一方面,本发明实施例提供了一种窗口吸附系统,包括:存储器和连接所述存储器的处理器;所述存储器存储计算机程序,所述处理器运行所述计算机程序时执行上述任意一种窗口吸附方法。

又一方面,本发明实施例提供了一种计算机存储介质,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于执行上述任意一种窗口吸附方法。

上述一个或多个技术方案可以具有以下优点或有益效果:通过为多个窗口确定一一对应的多个虚拟边界,进而对所述目标窗口的虚拟边界与所述多个窗口中除所述目标窗口外的其他窗口的虚拟边界进行碰撞检测以生成可吸附窗口列表,然后根据所述可吸附窗口列表确定目标吸附窗口,并将所述目标窗口吸附至所述目标吸附窗口,能够快速获得可吸附窗口列表,从而根据可吸附窗口列表确定目标吸附窗口,进而将目标窗口吸附至目标吸附窗口,提高了吸附效率,同时实现了在移动目标窗口过程中的实时吸附。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明第一实施例提供的一种窗口吸附方法的流程示意图。

图2为本发明第一实施例提供的窗口1、窗口2和窗口3之间的位置关系示意图。

图3为本发明第二实施例提供的一种窗口吸附装置的模块示意图。

图4为本发明第三实施例提供的一种窗口吸附系统的结构示意图。

图5为本发明第四实施例提供的一种计算机存储介质的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

【第一实施例】

参见图1,其为本发明第一实施例的窗口吸附方法的流程示意图。

具体地,本发明实施例提供的窗口吸附方法例如包括:

步骤s102:在窗口编辑界面上显示多个窗口;

步骤s104:确定与所述多个窗口一一对应的多个虚拟边界;

步骤s106:响应用户操作指令,移动所述多个窗口中的目标窗口;

步骤s108:对所述目标窗口的虚拟边界与所述多个窗口中除所述目标窗口外的其他窗口的虚拟边界进行碰撞检测以生成可吸附窗口列表;以及

步骤s110:根据所述可吸附窗口列表确定目标吸附窗口,并将所述目标窗口吸附至所述目标吸附窗口。

为了便于理解本实施例,下面结合图2对本实施例的窗口吸附方法进行详细描述。

本发明实施例的窗口吸附方法可例如通过安装在pc机上的软件例如窗口吸附软件来实现。图2示出了窗口1、窗口2和窗口3的位置关系示意图。出于示意性目的,在此,仅示出了三个窗口,在实际应用中,在窗口编辑界面上会存在多个窗口,本发明实施例并不以此为限。

首先,在窗口吸附软件的窗口编辑界面上显示三个窗口,分别为窗口1、窗口2和窗口3。然后,窗口吸附软件获取三个窗口的位置、尺寸等参数以及吸附距离确定与上述三个窗口一一对应的三个虚拟边界,具体地,窗口1对应的虚拟边界为虚拟边界a,窗口2对应的虚拟边界为虚拟边界b,以及窗口3对应的虚拟边界为虚拟边界c,需要说明的是,这里的虚拟边界需要根据吸附距离来确定,即,根据用户的需求,如果要求在窗口之间的吸附距离为d个像素例如15个像素(pixel)以内时实现窗口吸附,则在此将窗口向外扩展d/2个像素例如7.5个像素从而确定虚拟边界,即,虚拟边界与对应的实际窗口之间的距离为d/2例如7.5pixel。在此,用户移动三个窗口中的目标窗口例如窗口1,在移动的过程中,窗口吸附软件响应用户移动操作指令会对这目标窗口的虚拟边界与三个窗口中除目标窗口外的其他窗口的虚拟边界进行碰撞检测生成可吸附窗口列表,即,对虚拟边界a、虚拟边界b以及虚拟边界c进行碰撞检测,当对虚拟边界a、虚拟边界b以及虚拟边界c中任意至少两个有接触或相交时得到可吸附窗口列表。具体地,根据这三个虚拟边界利用碰撞检测算法获得虚拟边界b和虚拟边界c中与虚拟边界a相交的虚拟边界,以生成可吸附窗口列表,其中,该可吸附窗口列表包括所述虚拟边界b和虚拟边界c中与虚拟边界a相交的虚拟边界对应的窗口。在此,碰撞检测算法例如用于根据各个虚拟边界的对应位置等参数例如图2中矩形边界的各个顶点来确定虚拟边界是否相交,在此对碰撞检测算法不做具体阐述,只要能够检测虚拟边界之间碰撞即可,需要注意的是,这里的相交包括虚拟边界的接触以及重叠的情况。在本方案中,通过为各个窗口确定虚拟边界,并且对各个虚拟边界执行碰撞检测,利用碰撞检测算法的高效性,能够快速获得可吸附窗口列表,提高了吸附效率。

如图2所示,通过碰撞检测算法,检测到虚拟边界b和虚拟边界c均与虚拟边界a相交,因此,对应生成的可吸附窗口列表包括窗口1和窗口2,在此可吸附窗口列表可为数组,可吸附窗口列表中所包括的窗口的相关信息例如窗口标识存储在数组中,当然,可吸附窗口列表还可以通过其他形式存储如链表等,本发明实施例在此不做限定。然后计算可吸附列表中的各个窗口即窗口2和窗口3与目标窗口即窗口1之间的偏移量也即窗口之间的距离,在此,本发明实施例仅需要计算可吸附窗口列表中的各个窗口与目标窗口即窗口1之间的偏移量,而无需如现有技术那样在移动过程中计算窗口编辑界面上除目标窗口外的所有窗口与目标窗口之间偏移量,如此一来,简化了计算流程,从而提高了窗口吸附效率。在计算偏移量之后,对所计算的偏移量结果进行比较,确定窗口3与窗口1之间的偏移量与窗口2与窗口1之间的偏移量的大小关系,在图2中,窗口3与窗口1之间的偏移量小于窗口2与窗口1之间的偏移量,由此,将目标窗口即窗口1吸附至窗口3,即完成窗口1的吸附过程。此外,如果窗口3与窗口1之间的偏移量等于窗口2与窗口1之间的偏移量,则根据可吸附窗口列表中窗口2和窗体3的存储顺序来确定哪个窗口与窗口1吸附,如果在可吸附窗口列表中窗口2为第一个,则将窗口1与窗口2吸附,反之亦然。

需要注意的是,尽管图2中所示出的窗口和虚拟边界均为矩形,然而,在实际应用中,窗口和虚拟边界还可以为其他形状,例如,为圆形、三角形、除矩形外的其他多边形等,本发明实施例在此并不做具体限定。

综上所述,在本发明实施例中,通过为多个窗口确定一一对应的多个虚拟边界,进而对所述目标窗口的虚拟边界与所述多个窗口中除所述目标窗口外的其他窗口的虚拟边界进行碰撞检测以生成可吸附窗口列表,然后根据所述可吸附窗口列表确定目标吸附窗口,并将所述目标窗口吸附至所述目标吸附窗口,能够快速获得可吸附窗口列表,从而根据可吸附窗口列表确定目标吸附窗口,进而将目标窗口吸附至目标吸附窗口,提高了吸附效率,同时实现了在移动目标窗口过程中的实时吸附。

【第二实施例】

参见图3,本发明第二实施例提供了一种窗口吸附装置200。窗口吸附装置200包括窗口显示模块202、虚拟边界确定模块204、目标窗口移动模块206、碰撞检测模块208以及窗口吸附模块210。

具体地,窗口显示模块202用于在窗口编辑界面上显示多个窗口。

虚拟边界确定模块204用于确定与所述多个窗口一一对应的多个虚拟边界。

目标窗口移动模块206于响应用户操作指令,移动所述多个窗口中的目标窗口。

碰撞检测模块208用于对所述目标窗口的虚拟边界与所述多个窗口中除所述目标窗口外的其他窗口的虚拟边界进行碰撞检测以生成可吸附窗口列表。

窗口吸附模块210用于根据所述可吸附窗口列表确定目标吸附窗口,并将所述目标窗口吸附至所述目标吸附窗口。

在本发明的一个具体实施方式中,所述虚拟边界确定模块204具体用于:根据吸附距离和所述多个窗口确定所述多个窗口对应的所述多个虚拟边界。

在本发明的一个具体实施方式中,所述碰撞检测模块208具体用于:根据所述多个窗口的所述多个虚拟边界利用碰撞检测算法获得所述多个窗口中除所述目标窗口外的其他窗口与所述目标窗口的虚拟边界相交的虚拟边界对应的至少一个可吸附窗口以生成所述可吸附窗口列表,其中,所述可吸附窗口列表包括所述多个窗口中除所述目标窗口外的其他窗口与所述目标窗口的虚拟边界相交的虚拟边界对应的至少一个可吸附窗口。

本实施例中的窗口吸附装置200中的各模块之间的具体工作过程和技术效果参见前述第一实施例的描述。

【第三实施例】

如图4所示,本发明第三实施例提供一种窗口吸附系统300。窗口吸附系统300包括存储器310和与存储器310连接的处理器330。存储器310可例如为非易失性存储器,其上存储有计算机程序311。处理器330可例如包括嵌入式处理器。处理器330运行计算机程序311时执行前述第一实施例提供的窗口吸附方法。

【第四实施例】

如图5所示,本发明第四实施例提供的一种计算机存储介质400,存储有计算机可执行指令410。计算机可执行指令410用于执行如前述第一实施例的窗口吸附方法。计算机存储介质400例如为非易失性存储器,如包括:磁介质(如硬盘、软盘和磁带),光介质(如cdrom盘和dvd),磁光介质(如光盘)以及专门构造为用于存储和执行计算机可执行指令的硬件装置(如只读存储器(rom)、随机存取存储器(ram)、闪存等)。计算机存储介质400可由一个或多个处理器或处理装置来执行计算机可执行指令410。

此外,可以理解的是,前述各个实施例仅为本发明的示例性说明,在技术特征不冲突、结构不矛盾、不违背本发明的发明目的前提下,各个实施例的技术方案可以任意组合、搭配使用。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多路单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多路网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元/模块可以集成在一个处理单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一个单元/模块中。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用硬件加软件功能单元/模块的形式实现。

上述以软件功能单元/模块的形式实现的集成的单元/模块,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)的一个或多个处理器执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1