CN109191547B - 元素吸附方法、装置、设备和存储介质 - Google Patents
元素吸附方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN109191547B CN109191547B CN201810949240.4A CN201810949240A CN109191547B CN 109191547 B CN109191547 B CN 109191547B CN 201810949240 A CN201810949240 A CN 201810949240A CN 109191547 B CN109191547 B CN 109191547B
- Authority
- CN
- China
- Prior art keywords
- line
- adsorption
- point
- moving
- scene
- 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.)
- Active
Links
- 238000001179 sorption measurement Methods 0.000 title claims abstract description 786
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000013519 translation Methods 0.000 claims description 149
- 238000003795 desorption Methods 0.000 claims description 18
- 238000004364 calculation method Methods 0.000 claims description 17
- 230000015654 memory Effects 0.000 claims description 17
- 238000000605 extraction Methods 0.000 claims description 6
- 241000173529 Aconitum napellus Species 0.000 claims description 3
- 229940023019 aconite Drugs 0.000 claims description 3
- 238000000354 decomposition reaction Methods 0.000 claims description 3
- 238000001514 detection method Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 23
- 238000004422 calculation algorithm Methods 0.000 description 15
- 230000002452 interceptive effect Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/80—Creating or modifying a manually drawn or painted image using a manual input device, e.g. mouse, light pen, direction keys on keyboard
-
- 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/203—Drawing of straight lines or curves
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- User Interface Of Digital Computer (AREA)
- Image Analysis (AREA)
Abstract
本申请涉及一种元素吸附方法、***、设备和存储介质。所述方法包括:获取移动元素和场景元素;提取所述移动元素中的移动线点,以及,提取所述场景元素的场景线点;获取与所述移动线点具有吸附关系的场景线点,得到吸附线点;根据所述移动线点和所述吸附线点,将所述移动元素吸附至所述场景元素。根据本发明实施例,实现了元素之间的自动吸附效果,无须用户反复调整图形元素的位置,提升了用户操作电子白板的操作效率。
Description
技术领域
本申请涉及交互智能平板领域,特别是涉及一种元素吸附方法、装置、设备和存储介质。
背景技术
在交互智能平板领域,电子白板技术是交互智能设备中较为重要的应用之一,广泛地应用在各种应用场景中,极大提升人们的工作和学***板可以提供一个电子白板,老师可以在电子白板上绘制几何图、结构图等各种图形元素,以便结合图例讲解教学内容。
在电子白板书写时,通常需要拖动某个图形元素至另一个图形元素上。例如,老师可以用直尺画出一条直线,然后将直线拖动至三角板的一条边上,以将直线贴合在三角板的一边上。
然而,在人手拖动某个图形元素至另一个图形元素时,难以准确地将图形元素贴合,使得用户需要反复调整图形元素的位置,耗费用户时间,效率较低。
因此,目前在电子白板上移动图形元素的方法存在着操作效率较低的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提升电子白板的操作效率的元素吸附方法、装置、设备和存储介质。
第一方面,提供了一种元素吸附方法,所述方法包括:
获取移动元素和场景元素;
提取所述移动元素中的移动线点,以及,提取所述场景元素的场景线点;
获取与所述移动线点具有吸附关系的场景线点,得到吸附线点;
根据所述移动线点和所述吸附线点,将所述移动元素吸附至所述场景元素。
在其中一个实施例中,所述吸附线点具有多个,所述根据所述移动线点和所述吸附线点,将所述移动元素吸附至所述场景元素,包括:
获取多个吸附线点的吸附成本;确定最小吸附成本;根据所述最小吸附成本,将所述移动元素吸附至所述场景元素。
在其中一个实施例中,所述获取多个吸附线点的吸附成本,包括:
获取所述吸附线点的吸附方向,并计算所述移动线点在所述吸附方向上与所述吸附线点的平移距离;根据所述移动线点与所述吸附线点之间的夹角计算旋转角度,并计算所述移动线点在旋转所述旋转角度后、在所述吸附方向上与所述吸附线点的旋转后平移距离;将所述平移距离、所述旋转角度和所述旋转后平移距离,作为所述吸附成本。
在其中一个实施例中,所述吸附线点具有候选吸附方向,所述移动线点具有移动方向,所述获取所述吸附线点的吸附方向,包括:
计算所述移动线点的移动方向与所述吸附线点的候选吸附方向之间的方向夹角;当所述方向夹角小于预设夹角阈值,则确定所述吸附线点的候选吸附方向为所述吸附方向。
在其中一个实施例中,所述确定最小吸附成本,包括:
在多个吸附成本的平移距离中,确定最小平移距离;将所述最小平移距离对应的吸附成本,作为所述最小吸附成本;若所述最小平移距离对应的吸附成本具有多个,所述确定最小吸附成本,还包括:在所述最小平移距离对应的多个吸附成本中,确定最小旋转后平移距离;将所述最小旋转后平移距离对应的吸附成本,作为所述最小吸附成本;若所述最小旋转后平移距离对应的吸附成本具有多个,所述确定最小吸附成本,还包括:在所述最小旋转后平移距离对应的多个吸附成本中,确定最小旋转角度;将所述最小旋转角度对应的吸附成本,作为所述最小吸附成本。
在其中一个实施例中,所述根据所述最小吸附成本,将所述移动元素吸附至所述场景元素,包括:
将所述移动元素按照所述吸附方向移动所述最小吸附成本中的平移距离;将所述移动元素旋转所述最小吸附成本中的旋转角度;将旋转后的移动元素,按照所述吸附方向移动所述最小吸附成本中的旋转后平移距离。
在其中一个实施例中,在所述将所述移动元素吸附至所述场景元素之后,还包括:
标记所述移动元素为已吸附状态;检测处于所述已吸附状态的移动元素的吸附后移动向量;当所述吸附后移动向量符合脱离吸附条件,标记所述移动元素为未吸附状态,并返回至所述获取与所述移动线点具有吸附关系的场景线点,得到吸附线点的步骤。
在其中一个实施例中,还包括:
分解所述吸附后移动向量,得到法向移动向量;所述法向移动向量的方向与所述吸附方向相互垂直;当所述法向移动向量超过预设向量阈值,判定所述吸附后移动向量符合脱离吸附条件。
在其中一个实施例中,所述移动线点为移动点,所述场景线点为场景点,所述获取与所述移动线点具有吸附关系的场景线点,得到吸附线点,包括:
确定第一候选场景点;计算所述第一候选场景点与所述移动点之间的第一点间距离;当所述第一点间距离小于预设吸附距离,将所述第一候选场景点作为所述吸附线点。
在其中一个实施例中,所述确定第一候选场景点,包括:
生成与所述移动点的移动方向垂直的第一平面分界线;确定所述第一平面分界线的第一目标平面;将处于所述第一目标平面的场景点,作为所述第一候选场景点。
在其中一个实施例中,所述移动线点为移动点,所述场景线点为场景线,所述获取与所述移动线点具有吸附关系的场景线点,得到吸附线点,包括:
生成所述移动点的移动点延伸线;所述移动点延伸线的延伸方向与所述移动点的移动方向相同;获取所述移动点延伸线与所述场景线的交点,得到第一延伸线交点;计算所述移动点与所述第一延伸线交点的距离,得到第二点间距离;当所述第二点间距离小于预设吸附距离,将所述第一延伸线交点作为所述吸附线点。
在其中一个实施例中,所述移动线点为移动线,所述场景线点为场景点,所述获取与所述移动线点具有吸附关系的场景线点,得到吸附线点,包括:
确定第二候选场景点,并生成所述第二候选场景点的场景点延伸线;所述场景点延伸线的延伸方向与所述移动线的移动方向相反;获取所述场景点延伸线与所述移动线的交点,得到第二延伸线交点;计算所述第二延伸线交点与所述第二候选场景点的距离,得到第三点间距离;当所述第三点间距离小于预设吸附距离,将所述第二候选场景点作为所述吸附线点。
在其中一个实施例中,所述确定第二候选场景点,包括:
生成所述移动线的第二平面分界线;确定所述第二平面分界线的第二目标平面;将处于所述第二目标平面的场景点,作为所述第二候选场景点。
在其中一个实施例中,所述移动线点为移动线,所述场景线点为场景线,所述获取与所述移动线点具有吸附关系的场景线点,得到吸附线点,包括:
生成所述移动线的辅助四边形;所述辅助四边形的一边为所述移动线,所述辅助四边形的另一边为所述移动线在其移动方向上的预设吸附距离;确定候选场景线,并生成所述候选场景线的场景线延伸线;当所述场景线延伸线与所述辅助四边形的任意一边相交,获取所述场景线延伸线与所述辅助四边形的交点,得到多个第三延伸线交点;当任一个第三延伸线交点在所述场景线上时,或者,当所述候选场景线在所述第三延伸线交点所形成的线段之内时,将所述候选场景线作为所述吸附线点。
在其中一个实施例中,所述确定候选场景线,包括:
获取所述场景线与所述移动线之间的夹角,得到线间夹角;当所述线间夹角小于预设夹角阈值,确定所述场景线为所述候选场景线。
在其中一个实施例中,所述移动元素由移动线和移动点组成,所述获取与所述移动线点具有吸附关系的场景线点,得到吸附线点,包括:
当所述场景线点中存在有与所述移动线具有吸附关系的场景线点,获取与所述移动线具有吸附关系的场景线点,作为所述吸附线点;当所述场景线点中不存在有与所述移动线具有吸附关系的场景线点,获取与所述移动点具有吸附关系的场景线点,作为所述吸附线点。
第二方面,提供了一种元素吸附装置,所述装置包括:
元素获取模块,用于获取移动元素和场景元素;
线点提取模块,用于提取所述移动元素中的移动线点,以及,提取所述场景元素的场景线点;
吸附线点模块,用于获取与所述移动线点具有吸附关系的场景线点,得到吸附线点;
吸附模块,用于根据所述移动线点和所述吸附线点,将所述移动元素吸附至所述场景元素。
第三方面,提供了一种电子白板设备,包括:存储器、具有触摸功能的显示屏以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个个处理器实现如下操作:
获取移动元素和场景元素;
提取所述移动元素中的移动线点,以及,提取所述场景元素的场景线点;
获取与所述移动线点具有吸附关系的场景线点,得到吸附线点;
根据所述移动线点和所述吸附线点,将所述移动元素吸附至所述场景元素。
第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取移动元素和场景元素;
提取所述移动元素中的移动线点,以及,提取所述场景元素的场景线点;
获取与所述移动线点具有吸附关系的场景线点,得到吸附线点;
根据所述移动线点和所述吸附线点,将所述移动元素吸附至所述场景元素。
上述元素吸附方法、装置、设备和存储介质,通过在移动元素中提取移动线点,以及,在场景元素中提取场景线点,确定与移动线点具有吸附关系的场景线点作为吸附线点,并根据移动线点和吸附线点,将移动元素吸附至场景元素,实现了元素之间的自动吸附效果,无须用户反复调整图形元素的位置,提升了用户操作电子白板的操作效率。
附图说明
图1是实施例一的一种元素吸附方法的流程图;
图2是实施例一的一种移动元素和场景元素的示意图;
图3是实施例一的一种元素吸附效果的示意图;
图4是实施例二的一种元素吸附方法的流程图;
图5a是实施例二的一种移动点和场景点的示意图;
图5b是实施例二的一种基于移动点作平面分界线的示意图;
图5c是实施例二的一种确定吸附线点的示意图;
图6a是实施例二的一种移动点与场景线的示意图;
图6b是实施例二的一种基于移动点作延伸线的示意图;
图7a是实施例二的一种移动线和场景点的示意图;
图7b是实施例二的一种基于场景点作延伸线的示意图;
图8a是实施例二的一种移动线与场景线的示意图;
图8b是实施例二的一种辅助四边形的示意图;
图8c是实施例二的一种场景线延伸线与辅助四边形相交的示意图之一;
图8d是实施例二的一种场景线延伸线与辅助四边形相交的示意图之二;
图8e是实施例二的一种场景线延伸线与辅助四边形相交的示意图之三;
图9是实施例二的一种元素吸附步骤的流程图;
图10是实施例三的一种元素吸附装置的结构示意图;
图11是实施例四的一种电子白板设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
实施例一
图1是实施例一的一种元素吸附方法的流程图。本实施例提供的元素吸附方法可以由电子白板设备执行,该电子白板设备可以通过软件和/或硬件的方式实现,该电子白板设备可以是两个或多个物理实体构成,也可以是一个物理实体构成。该电子白板设备可以是电脑,手机,平板,投影仪或交互智能平板等。在实施例中,以交互智能平板为电子白板设备为例进行描述,其中,交互智能平板可以是通过触控技术对显示在显示平板上的内容进行操控和实现人机交互操作的一体化设备,其集成了电子白板、音响、电视机等一种或多种功能。
可选的,交互智能平板可以安装有电子白板软件,该电子白板软件可以预先安装在交互智能平板中。具体的,电子白板软件用于在交互智能平板上展示一个电子白板,用户可以通过触控方式,在该电子白板输入内容,该电子白板可以显示用户输入的内容。其中,用户输入的内容可以是文字、图形等。
具体的,参考图1,本发明实施例一的元素吸附方法,具体包括:
步骤S110,获取移动元素和场景元素。
其中,移动元素可以为电子白板中用户所要移动的、将要被吸附的图形元素。
其中,场景元素可以为电子白板中没有移动的、可以吸附移动元素的笔迹、构图形状、辅助工具等元素。
其中,图形元素可以包括由点、线组成的元素。例如点、线段、三角尺、直尺等。
图2是实施例一的一种移动元素和场景元素的示意图。从图中可见,电子白板上包括有线段201、三角尺202和直尺203。用户当前向左下方拖动三角尺202,以将三角尺202的一条直角边贴合线段201,另一条直角边贴合直尺203。三角尺202在移动中,而线段201和直尺203没有移动。因此,三角尺202为移动元素,线段201和直尺203为场景元素。
具体实现中,电子白板设备可以检测当前电子白板上的各个元素,将其移动的元素作为移动元素,没有移动的元素作为场景元素。
步骤S120,提取所述移动元素中的移动线点,以及,提取所述场景元素的场景线点。
其中,移动线点可以为组成移动元素的线和/或点。
其中,场景线点可以为组成场景元素的线和/或点。
具体实现中,可以分解移动元素,得到多个线和/或点,由此提取到移动元素的移动线点。相同地,可以分解场景元素,得到多个线和/或点,由此提取到场景元素的场景线点。
步骤S130,获取与所述移动线点具有吸附关系的场景线点,得到吸附线点。
其中,吸附关系可以为线点之间是否可以贴合、重合等的关系。
其中,吸附线点为与某个移动线点之间存在吸附关系的场景线点。
具体实现中,移动线点可以具体分为移动线和移动点,场景线点可以具体分为场景线和场景点。由此,存在有移动点和场景点、移动点和场景线、移动线和场景点、移动线和场景线等四种吸附模式,对于该四种吸附模式,可以通过点点吸附、点线吸附、线点吸附和线线吸附等四种吸附算法,在场景线点中确定吸附线点。
更具体地,对于移动点和场景点的吸附模式,其中一种点点吸附算法中,可以首先根据移动点的移动方向,即移动元素的移动方向,在多个场景点中,筛选出候选场景点。然后,根据移动点与各个候选场景点之间的距离,确定吸附线点。
对于移动点和场景线的吸附模式,其中一种点线吸附算法中,可以首先根据移动点的移动方向,即移动元素的移动方向,生成移动点的延伸线,使得延伸线与一个或多个场景线形成交点,根据交点与移动点的距离,确定吸附线点。
对于移动线和场景点的吸附模式,其中一种线点吸附算法中,可以首先根据移动点的移动方向,在多个场景点中,筛选出候选场景点。然后,生成各个候选场景点的延伸线,使得多个延伸线与移动线形成交点,根据交点与候选场景点的距离,确定吸附线点。
对于移动线和场景线的吸附模式,其中一种线线吸附算法中,可以首先根据移动线与场景线的平行关系,在多个场景线中确定候选场景线。然后,根据移动线生成一个辅助四边形,根据场景线的延长线与辅助四边形的交点的位置,确定吸附线点。
本领域技术人员可以根据实际需要针对各个吸附模式采用不同的吸附方法,上述确定吸附线点的吸附算法仅用于示例说明,本发明实施例对确定吸附线点的具体算法不作限制。
步骤S140,根据所述移动线点和所述吸附线点,将所述移动元素吸附至所述场景元素。
具体实现中,在确定吸附线点之后,可以将移动元素吸附至吸附线点对应的场景元素上。
例如,确定吸附线点后,则可以确定吸附线点与移动线点之间的距离,作为移动距离,同时,也确定了移动线点的移动方向。将移动元素按照移动方向移动上述移动距离后,移动元素的移动线点即可与某个场景元素的场景线点贴合、重合,即,将移动元素吸附至场景元素上。
图3是实施例一的一种元素吸附效果的示意图。从图中可见,用户向左下方拖动三角尺302,此时,通过上述的从移动元素和场景元素提取线点的方法,可以将三角尺302的一条直角边贴合至线段301上,三角尺302的另一条直角边贴合至直尺303的一条直线边上,从而将三角尺302吸附至线段301和直尺303。
实际应用中,可能存在有多个吸附线点,由于移动元素吸附至不同的吸附线点,所要移动的距离、旋转的角度等吸附成本不同,因此,可以根据各个吸附线点的吸附成本,在多个吸附线点中,确定目标吸附线点,并根据目标吸附线点将移动元素吸附至场景元素。
根据本实施例的元素吸附方法,通过在移动元素中提取移动线点,以及,在场景元素中提取场景线点,确定与移动线点具有吸附关系的场景线点作为吸附线点,并根据移动线点和吸附线点,将移动元素吸附至场景元素,实现了元素之间的自动吸附效果,无须用户反复调整图形元素的位置,提升了用户操作电子白板的操作效率。
实施例二
图4是实施例二的一种元素吸附方法的流程图,具体的,参考图4,本发明实施例二的元素吸附方法,具体包括:
步骤S210,获取移动元素和场景元素。
具体实现中,电子白板设备可以检测当前电子白板上的各个元素,将其移动的元素作为移动元素,没有移动的元素作为场景元素。
步骤S220,提取所述移动元素中的移动线点,以及,提取所述场景元素的场景线点。
具体实现中,可以分解移动元素,得到多个线和/或点,由此提取到移动元素的移动线点。相同地,可以分解场景元素,得到多个线和/或点,由此提取到场景元素的场景线点。
步骤S230,获取与所述移动线点具有吸附关系的场景线点,得到吸附线点。
在一个实施例中,所述移动元素由移动线和移动点组成,所述步骤S230,可以包括:
当所述场景线点中存在有与所述移动线具有吸附关系的场景线点,获取与所述移动线具有吸附关系的场景线点,作为所述吸附线点;当所述场景线点中不存在有与所述移动线具有吸附关系的场景线点,获取与所述移动点具有吸附关系的场景线点,作为所述吸附线点。
其中,移动线为移动元素中的直线,移动点为移动元素中的点。
具体实现中,可以优先获取与移动元素中的直线具有吸附关系的场景线点,作为吸附线点。当多个场景线点中不存在与移动元素的直线具有吸附关系的场景线点,则可以获取与移动元素中的点具有吸附关系的场景线点,作为吸附线点。
由于线的吸附比起点的吸附更符合用户的吸附需求,因此,通过本实施例,优先查找与移动元素的移动线具有吸附关系的场景线点作为吸附线点,元素吸附更符合用户的吸附需求。
在一个实施例中,所述移动线点为移动点,所述场景线点为场景点,所述步骤S230,可以包括:
确定第一候选场景点;计算所述第一候选场景点与所述移动点之间的第一点间距离;当所述第一点间距离小于预设吸附距离,将所述第一候选场景点作为所述吸附线点。
具体实现中,可以首先在多个场景点中,排除无关的场景点,得到候选场景点。为了区分说明,该候选场景点命名为第一候选场景点。
然后,可以计算各个第一候选场景点与移动点之间的距离,得到点间距离。为了区分说明,该点间距离命名为第一点间距离。
最后,判断第一点间距离是否小于预先设定的吸附距离,若是,则将该第一候选场景点,选取为吸附线点。
在一个实施例中,所述确定第一候选场景点,包括:
生成与所述移动点的移动方向垂直的第一平面分界线;确定所述第一平面分界线的第一目标平面;将处于所述第一目标平面的场景点,作为所述第一候选场景点。
具体实现中,由于需要将移动点吸附至在其移动方向上的场景点,因此,可以首先确定与移动点的移动方向垂直的一条平面分界线。为了区分说明,该平面分界线命名为第一平面分界线。该第一平面分界线将平面划分为两个平面,可以将与移动点的移动方向同向的一个平面,作为第一目标平面。最后,将处于第一目标平面的场景点,作为第一候选场景点。
通过在多个场景点中筛选出第一候选场景点,在后续处理中,可以减少需要进行成本计算的场景点,从而提升元素吸附的计算效率。
图5a是实施例二的一种移动点和场景点的示意图。从图中可见,当前存在移动点501和多个场景点502。移动点501的移动方向如箭头所示。
图5b是实施例二的一种基于移动点作平面分界线的示意图。从图中可见,以移动点501的移动方向的垂直方向作一条直线,得到平面分界线,该平面分界线将平面划分为两个平面,右侧平面与移动点的移动方向同向,处于右侧平面的场景点,则为第一候选场景点。
实际应用中,可以通过直线方程判断某个场景点处于平面分界线的上侧还是下侧,即场景点所处的平面。更具体地,确定平面分界线L满足方程y=kx+b。某个场景点P的坐标为(X,Y)。如果kX+b>Y,表明场景点P处于平面分界线L的下侧,否则处于上侧。由此,可以确定某个场景点是否处于目标平面。
利用直线方程方式判断场景点是否为候选场景点,可以减少吸附算法的计算量,提升吸附效率。
实际应用中,由于可能存在有大量的第一候选场景点,因此可以通过判断某个场景点是否在以移动点为圆心的圆内的方式,确定吸附线点。更具体地,移动点的坐标为(X1,Y1),吸附距离为L,候选场景点的坐标为(X2,Y2),确定以移动点为圆心、吸附距离为半径的一个圆,当满足可以判定第一候选场景点在圆内,即第一候选场景点与移动点之间的点间距离小于预设吸附距离。
需要说明的是,在的计算中,可以直接计算L2,而无须进行对(X1-X2)2+(Y1-Y2)2该部分的计算数值进行开方。从而,只需要针对一个L计算平方值,而无须针对多个场景点的坐标(X2,Y2)进行计算,减少了吸附算法的计算量,提升吸附效率。
图5c是实施例二的一种确定吸附线点的示意图。从图中可见,以移动点501作为圆心,吸附距离为半径作圆,提取出处于圆内的场景点5021,排除处于圆外的场景点5022,从而筛选出与移动点501的距离在吸附距离之内的场景点。
对于移动点和场景点的吸附模式,可以通过上述的点点吸附算法,在多个场景点中,确定与移动点具有吸附关系的吸附线点。
在一个实施例中,所述移动线点为移动点,所述场景线点为场景线,所述步骤S230,可以包括:
生成所述移动点的移动点延伸线;所述移动点延伸线的延伸方向与所述移动点的移动方向相同;获取所述移动点延伸线与所述场景线的交点,得到第一延伸线交点;计算所述移动点与所述第一延伸线交点的距离,得到第二点间距离;当所述第二点间距离小于预设吸附距离,将所述第一延伸线交点作为所述吸附线点。
具体实现中,可以以移动点为起点,以移动点的移动方向为延伸方向,作出一条延伸线,作为移动点延伸线。该移动点延伸线可能与一条或多条场景线相交,得到一个或多个第一延伸线交点。然后,计算第一延伸线交点与移动点两点之间的点间距离。为了区分说明,该距离命名为第二点间距离。最后,将第二点间距离与预设吸附距离比较,若第二点间距离小于预设吸附距离,则确定该第一延伸线交点作为吸附线点。
图6a是实施例二的一种移动点与场景线的示意图。从图中可见,当前存在移动点601和多个场景线602。移动点601的移动方向如图中箭头所示。
图6b是实施例二的一种基于移动点作延伸线的示意图。从图中可见,以移动点601为起点,以移动方向为延伸方向作直线,得到一条移动点延伸线603,移动点延伸线603与场景线602相交,得到第一延伸线交点6021。
对于移动点和场景线的吸附模式,可以通过上述的点线吸附算法,在多个场景线中,确定与移动点具有吸附关系的吸附线点。
在一个实施例中,所述移动线点为移动线,所述场景线点为场景点,所述步骤S230,可以包括:
确定第二候选场景点,并生成所述第二候选场景点的场景点延伸线;所述场景点延伸线的延伸方向与所述移动线的移动方向相反;获取所述场景点延伸线与所述移动线的交点,得到第二延伸线交点;计算所述第二延伸线交点与所述第二候选场景点的距离,得到第三点间距离;当所述第三点间距离小于预设吸附距离,将所述第二候选场景点作为所述吸附线点。
具体实现中,可以首先在多个场景点中,排除无关的场景点,得到候选场景点。为了区分说明,该候选场景点命名为第二候选场景点。
然后,针对各个第二候选场景点,生成对应的场景点延伸线。具体地,可以以第二候选场景点作为起点,以移动线的移动方向相反的方向为延伸方向,作出一条延伸线,作为场景点延伸线。其中的一个或多个场景点延伸线可能与移动线相交,得到第二延伸线交点。
最后,计算各个第二延伸线交点与第二候选场景点两点之间的点间距离,作为第三点间距离。当第三点间距离小于预设吸附距离,确定第二候选场景点为吸附线点。
在一个实施例中,所述确定第二候选场景点,可以包括:
生成所述移动线的第二平面分界线;确定所述第二平面分界线的第二目标平面;将处于所述第二目标平面的场景点,作为所述第二候选场景点。
具体实现中,由于需要将移动线吸附至在其移动方向上的场景点,因此,可以首先确定与移动线的移动方向垂直的一条平面分界线。为了区分说明,该平面分界线命名为第二平面分界线。该第二平面分界线将平面划分为两个平面,可以将与移动线的移动方向同向的一个平面,作为第二目标平面。最后,将处于第二目标平面的场景点,作为第二候选场景点。
通过在多个场景点中筛选出第二候选场景点,在后续处理中,可以减少需要进行成本计算的场景点,从而提升元素吸附的计算效率。
图7a是实施例二的一种移动线和场景点的示意图。从图中可见,当前具有移动线701和多个场景点702。移动线701的移动方向如箭头所示。
图7b是实施例二的一种基于场景点作延伸线的示意图。从图中可见,以场景点702为起点,以与移动方向相反的延伸方向作直线,得到一条场景点延伸线703,场景点延伸线703与移动线701相交,得到第二延伸线交点7031。
对于移动线和场景点的吸附模式,可以通过上述的线点吸附算法,在多个场景点中,确定与移动线具有吸附关系的吸附线点。
在一个实施例中,所述移动线点为移动线,所述场景线点为场景线,所述步骤S230,可以包括:
生成所述移动线的辅助四边形;所述辅助四边形的一边为所述移动线,所述辅助四边形的另一边为所述移动线在其移动方向上的预设吸附距离;确定候选场景线,并生成所述候选场景线的场景线延伸线;当所述场景线延伸线与所述辅助四边形的任意一边相交,获取所述场景线延伸线与所述辅助四边形的交点,得到多个第三延伸线交点;当任一个第三延伸线交点在所述场景线上时,或者,当所述候选场景线在所述第三延伸线交点所形成的线段之内时,将所述候选场景线作为所述吸附线点。
具体实现中,可以首先针对移动线生成一个辅助四边形。具体地,采用移动线作为辅助四边形的一条边。下一步,以移动线的一个端点作为起点,以移动线在其移动方向上的预设吸附距离,作为辅助四边形的另一条边。在确定两条边后,即可确定一个四边形,作为辅助四边形。
然后,在多个场景线中,筛选出与移动线平行或接***行的场景线,作为候选场景线。针对各个候选场景线作延伸线,得到对应的多个场景线延伸线。其中一个或多个场景线延伸线可能与辅助四边形的一条边或两条边相交,得到多个第三延伸线交点。
最后,判断是否存在有至少一个第三延伸线交点是否在候选场景线上,以及,判断候选场景线是否处于第三延伸线交点所形成的线段之内,若符合其中一个条件,则确定候选场景线为吸附线点。
图8a是实施例二的一种移动线与场景线的示意图。从图中可见,当前存在移动线801和多个场景线802。移动线801的移动方向如图中箭头所示。
图8b是实施例二的一种辅助四边形的示意图。从图中可见,以移动线801作为一条边801`,以移动线801的一个端点8011作为起点,以移动线801在其移动方向上的预设吸附距离作一条边803。由此,边801`和边803即可确定一个四边形,得到辅助四边形804。
图8c是实施例二的一种场景线延伸线与辅助四边形相交的示意图之一。从图中可见,场景线802的场景线延伸线802`与辅助四边形804的两条边相交,得到延伸线交点805和延伸线交点806。其中,延伸线交点805在场景线802上,因此,判定场景线802为吸附线点。
图8d是实施例二的一种场景线延伸线与辅助四边形相交的示意图之二。从图中可见,场景线802的场景线延伸线802`与辅助四边形804的两条边相交,得到延伸线交点805和延伸线交点806。其中,延伸线交点806在场景线802上,因此,判定场景线802为吸附线点。
图8e是实施例二的一种场景线延伸线与辅助四边形相交的示意图之三。从图中可见,场景线802的场景延伸线802`与辅助四边形804的两条边相交,得到延伸线交点805和延伸线交点806。延伸线交点805和延伸线交点806形成一条线段807,场景线802在该线段807上,因此,判定场景线802为吸附线点。
在一个实施例中,所述确定候选场景线,可以包括:
获取所述场景线与所述移动线之间的夹角,得到线间夹角;当所述线间夹角小于预设夹角阈值,确定所述场景线为所述候选场景线。
具体实现中,可以计算场景线与移动线之间的夹角,作为线间夹角,判断线间夹角是否小于预设夹角阈值;若是,表明场景线与移动线接近于平行,可以进行吸附,因此可以确定该场景线为候选场景线。若否,表明场景线与移动线不平行,无法进行吸附。
对于移动线和场景线的吸附模式,可以通过上述的线线吸附算法,在多个场景线中,确定与移动线具有吸附关系的吸附线点。
步骤S240,根据所述移动线点和所述吸附线点,将所述移动元素吸附至所述场景元素。
在一个实施例中,参考图9,提供了实施例二的一种元素吸附步骤的流程图,所述吸附线点具有多个,所述步骤S240,可以包括以下步骤:
步骤S11,获取多个吸附线点的吸附成本。
步骤S12,确定最小吸附成本。
步骤S13,根据所述最小吸附成本,将所述移动元素吸附至所述场景元素。
其中,吸附成本可以为如果将移动线点吸附至吸附线点时所需要移动的平移距离、旋转的角度、旋转后所需移动的距离等。
具体实现中,由于可能存在有多个吸附线点,根据不同的吸附线点进行元素吸附所产生的吸附成本不同。因此,可以计算各个吸附线点的吸附成本,并确定最小吸附成本,根据最小吸附成本将移动元素吸附至场景元素。
所述步骤S11的具体实现中,可以包括:
获取所述吸附线点的吸附方向,并计算所述移动线点在所述吸附方向上与所述吸附线点的平移距离;根据所述移动线点与所述吸附线点之间的夹角计算旋转角度,并计算所述移动线点在旋转所述旋转角度后、在所述吸附方向上与所述吸附线点的旋转后平移距离;将所述平移距离、所述旋转角度和所述旋转后平移距离,作为所述吸附成本。
其中,吸附方向可以为将移动线点移动至吸附线点所需移动的方向。吸附方向可以与移动线点的移动方向相同,也可能存在一定夹角。
更具体地,可以首先确定移动线点与吸附线点之间的吸附方向,然后计算移动线点在该吸附方向上平移至吸附线点所需移动的距离,作为平移距离。
然后,可以计算移动线点与吸附线点之间的夹角,根据计算得到的夹角确定旋转角度,以便移动线点根据该旋转角度旋转一定的角度。下一步,可以计算移动线点在旋转该旋转角度后,在吸附方向上平移至吸附线点所需移动的距离,作为旋转后平移距离。
最后,可以将上述的平移距离、旋转角度、旋转后平移角度,作为上述的吸附成本。
在一个实施例中,所述吸附线点具有候选吸附方向,所述移动线点具有移动方向,所述获取所述吸附线点的吸附方向,具体包括:
计算所述移动线点的移动方向与所述吸附线点的候选吸附方向之间的方向夹角;当所述方向夹角小于预设夹角阈值,则确定所述吸附线点的候选吸附方向为所述吸附方向。
具体实现中,可以首先计算移动线点的移动方向与吸附线点的候选吸附方向之间的夹角,作为方向夹角。比较该方向夹角与预设夹角阈值,如果方向夹角大于预设夹角阈值,表明吸附方向与移动方向的偏差较大,不建议进行吸附。如果方向夹角小于预设夹角阈值,则可以确定该候选吸附方向为上述的可进行成本计算的吸附方向。
所述步骤S12的具体实现中,可以包括:
在多个吸附成本的平移距离中,确定最小平移距离;将所述最小平移距离对应的吸附成本,作为所述最小吸附成本;若所述最小平移距离对应的吸附成本具有多个,所述确定最小吸附成本,还包括:在所述最小平移距离对应的多个吸附成本中,确定最小旋转后平移距离;将所述最小旋转后平移距离对应的吸附成本,作为所述最小吸附成本;若所述最小旋转后平移距离对应的吸附成本具有多个,所述确定最小吸附成本,还包括:在所述最小旋转后平移距离对应的多个吸附成本中,确定最小旋转角度;将所述最小旋转角度对应的吸附成本,作为所述最小吸附成本。
例如,当前n个吸附线点的吸附成本组成吸附成本集合。其中,吸附成本Vn包括平移距离为Vnt、旋转角度Vnr和旋转后平移距离Vnrt。初始化最小平移距离Mt、最小旋转角度Mr和最小旋转后平移距离Mnr。
从集合中选取一个吸附成本Vn,判断Vnt<Mt,或者,Vnt≈Mt,若任一等式成立,则设定Mt=Vnt;若均不成立,则从集合中选取下一个吸附成本,直至遍历集合中的n个吸附成本,确定出最小平移距离Vnt,将最小平移距离Vnt对应的吸附成本Vn作为最小吸附成本。
如果多个吸附线点的吸附成本均为最小吸附成本,即,存在有平移距离均相同的多个吸附线点,因此,可以依据吸附线点的旋转后平移距离,进一步确定一个最小吸附成本,即,确定一个最终用于吸附的吸附线点。
在上述例子的基础上,在最小平移距离Vnt对应的多个吸附成本中,选取一个吸附成本Vn,判断Vnrt<Mnr,若成立,则设定Mnr=Vnrt;若不成立,则从最小平移距离Vnt对应的多个吸附成本中,选取下一个吸附成本,直至确定出最小旋转后平移距离Vnrt,将最小旋转后平移距离Vnrt对应的吸附成本作为最小吸附成本。
如此类推,如果存在有多个吸附线点的旋转后平移距离Vnrt相同,则依据吸附线点的旋转角度Vnr,进一步确定一个最小吸附成本。
由于相对于旋转、旋转后平移等移动处理,进行平移处理所耗费的时间较多,因此,通过依次按照平移距离、旋转后平移距离、旋转角度作为依据计算吸附线点的吸附成本,可以准确地确定最小吸附成本,提升元素吸附的效率。
所述步骤S13的具体实现中,可以包括:
将所述移动元素按照所述吸附方向移动所述最小吸附成本中的平移距离;将所述移动元素旋转所述最小吸附成本中的旋转角度;将旋转后的移动元素,按照所述吸附方向移动所述最小吸附成本中的旋转后平移距离。
具体实现中,在确定最小吸附成本之后,即可确定最小吸附成本中的平移距离、旋转角度和旋转后平移距离。可以将移动元素向吸附方向移动该平移距离,和/或,将移动元素旋转该旋转角度,将旋转后的移动元素向吸附方向移动该旋转后平移距离。
步骤S250,标记所述移动元素为已吸附状态。
步骤S260,检测处于所述已吸附状态的移动元素的吸附后移动向量。
其中,已吸附状态为移动元素已经吸附至某个场景元素的状态。相对地,未吸附状态为移动元素未吸附至任何场景元素的状态。
其中,移动向量为移动元素向特定方向所移动的距离。
具体实现中,当移动元素吸附至某个场景元素之后,可以标记该移动元素为已吸附状态。用户可以在电子白板上继续移动该移动元素,当某个移动元素处于已吸附状态,可以检测其在该状态下的移动向量,作为吸附后移动向量。
步骤S270,当所述吸附后移动向量符合脱离吸附条件,标记所述移动元素为未吸附状态,并返回至所述获取与所述移动线点具有吸附关系的场景线点,得到吸附线点的步骤。
具体实现中,可以判断吸附后移动向量是否符合脱离吸附条件。例如,脱离吸附条件可以为一个向量阈值,当吸附后移动向量超过向量阈值,则判定为符合脱离吸附条件。
当处于已吸附状态的移动元素的吸附后移动向量符合脱离吸附条件,则可以将移动元素从已吸附状态转为未吸附状态,并重新检测可供移动元素吸附的吸附线点。
在一个实施例中,在所述步骤S270之前,还包括:
分解所述吸附后移动向量,得到法向移动向量;所述法向移动向量的方向与所述吸附方向相互垂直;当所述法向移动向量超过预设向量阈值,判定所述吸附后移动向量符合脱离吸附条件。
具体实现中,对于移动线与场景线的吸附模式,在进入已吸附状态之后,吸附后移动向量可以分解为水平移动向量和法向移动向量。水平移动向量即为移动线相对于场景线进行水平移动的距离,法向移动向量即为移动线相对于场景线进行垂直移动的距离。当法向移动向量超过预设向量阈值,即,移动线相对于场景线进行垂直移动的距离累计至一定距离后,则符合脱离吸附条件。
根据本实施例的元素吸附方法,通过点点吸附、点线吸附、线点吸附、线线吸附等算法确定吸附线点,可以减少进行元素吸附的计算量,提升元素吸附的效率。
而且,通过上述的算法提升了吸附效率,用于用户操作电子白板,提升了用户体验。
应该理解的是,虽然图1、图4和图9的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1、图4和图9中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
实施例三
图10是实施例三的一种元素吸附装置的结构示意图。本实施例提供的元素吸附装置可以集成在电子白板设备中,该电子白板设备可以通过软件和/或硬件的方式实现,该电子白板设备可以是两个或多个物理实体构成,也可以是一个物理实体构成。该电子白板设备可以是电脑,手机,平板,投影仪或交互智能平板等。参考图9,本实施例提供的元素吸附装置具体包括:元素获取模块310、线点提取模块320、吸附线点模块330和吸附模块340;其中:
元素获取模块310,用于获取移动元素和场景元素;
线点提取模块320,用于提取所述移动元素中的移动线点,以及,提取所述场景元素的场景线点;
吸附线点模块330,用于获取与所述移动线点具有吸附关系的场景线点,得到吸附线点;
吸附模块340,用于根据所述移动线点和所述吸附线点,将所述移动元素吸附至所述场景元素。
在一个实施例中,所述吸附线点具有多个,所述吸附模块340,包括:
成本获取子模块,用于获取多个吸附线点的吸附成本;最小成本子模块,用于确定最小吸附成本;吸附子模块,用于根据所述最小吸附成本,将所述移动元素吸附至所述场景元素。
在一个实施例中,所述成本获取子模块,包括:
第一计算单元,用于获取所述吸附线点的吸附方向,并计算所述移动线点在所述吸附方向上与所述吸附线点的平移距离;第二计算单元,用于根据所述移动线点与所述吸附线点之间的夹角计算旋转角度,并计算所述移动线点在旋转所述旋转角度后、在所述吸附方向上与所述吸附线点的旋转后平移距离;成本确定单元,用于将所述平移距离、所述旋转角度和所述旋转后平移距离,作为所述吸附成本。
在一个实施例中,所述吸附线点具有候选吸附方向,所述移动线点具有移动方向,所述第一计算单元,包括:
夹角计算子单元,用于计算所述移动线点的移动方向与所述吸附线点的候选吸附方向之间的方向夹角;吸附方向子单元,用于当所述方向夹角小于预设夹角阈值,则确定所述吸附线点的候选吸附方向为所述吸附方向。
在一个实施例中,所述最小成本子模块,包括:
最小平移距离单元,用于在多个吸附成本的平移距离中,确定最小平移距离;成本确定单元,用于将所述最小平移距离对应的吸附成本,作为所述最小吸附成本;最小旋转后平移距离单元,用于在所述最小平移距离对应的多个吸附成本中,确定最小旋转后平移距离;所述成本确定单元,还用于将所述最小旋转后平移距离对应的吸附成本,作为所述最小吸附成本;最小旋转角度单元,用于在所述最小旋转后平移距离对应的多个吸附成本中,确定最小旋转角度;所述成本确定单元,还用于将所述最小旋转角度对应的吸附成本,作为所述最小吸附成本。
在一个实施例中,所述吸附子模块,具体用于:
将所述移动元素按照所述吸附方向移动所述最小吸附成本中的平移距离;将所述移动元素旋转所述最小吸附成本中的旋转角度;将旋转后的移动元素,按照所述吸附方向移动所述最小吸附成本中的旋转后平移距离。
在一个实施例中,还包括:
第一标记模块,用于标记所述移动元素为已吸附状态;
向量检测模块,用于检测处于所述已吸附状态的移动元素的吸附后移动向量;
第二标记模块,用于当所述吸附后移动向量符合脱离吸附条件,标记所述移动元素为未吸附状态,并返回至所述获取与所述移动线点具有吸附关系的场景线点,得到吸附线点的步骤。
在一个实施例中,所述方法还包括:
向量分解模块,用于分解所述吸附后移动向量,得到法向移动向量;所述法向移动向量的方向与所述吸附方向相互垂直;
脱离判定模块,用于当所述法向移动向量超过预设向量阈值,判定所述吸附后移动向量符合脱离吸附条件。
在一个实施例中,所述移动线点为移动点,所述场景线点为场景点,所述吸附线点模块330,具体用于:
确定第一候选场景点;计算所述第一候选场景点与所述移动点之间的第一点间距离;当所述第一点间距离小于预设吸附距离,将所述第一候选场景点作为所述吸附线点。
在一个实施例中,所述吸附线点模块330,具体还用于:
生成与所述移动点的移动方向垂直的第一平面分界线;确定所述第一平面分界线的第一目标平面;将处于所述第一目标平面的场景点,作为所述第一候选场景点。
在一个实施例中,所述移动线点为移动点,所述场景线点为场景线,所述吸附线点模块330,具体用于:
生成所述移动点的移动点延伸线;所述移动点延伸线的延伸方向与所述移动点的移动方向相同;获取所述移动点延伸线与所述场景线的交点,得到第一延伸线交点;计算所述移动点与所述第一延伸线交点的距离,得到第二点间距离;当所述第二点间距离小于预设吸附距离,将所述第一延伸线交点作为所述吸附线点。
在一个实施例中,所述移动线点为移动线,所述场景线点为场景点,所述吸附线点模块330,具体用于:
确定第二候选场景点,并生成所述第二候选场景点的场景点延伸线;所述场景点延伸线的延伸方向与所述移动线的移动方向相反;获取所述场景点延伸线与所述移动线的交点,得到第二延伸线交点;计算所述第二延伸线交点与所述第二候选场景点的距离,得到第三点间距离;当所述第三点间距离小于预设吸附距离,将所述第二候选场景点作为所述吸附线点。
在一个实施例中,所述吸附线点模块330,具体还用于:
生成所述移动线的第二平面分界线;确定所述第二平面分界线的第二目标平面;将处于所述第二目标平面的场景点,作为所述第二候选场景点。
在一个实施例中,所述移动线点为移动线,所述场景线点为场景线,所述吸附线点模块330,具体用于:
生成所述移动线的辅助四边形;所述辅助四边形的一边为所述移动线,所述辅助四边形的另一边为所述移动线在其移动方向上的预设吸附距离;确定候选场景线,并生成所述候选场景线的场景线延伸线;当所述场景线延伸线与所述辅助四边形的任意一边相交,获取所述场景线延伸线与所述辅助四边形的交点,得到多个第三延伸线交点;当任一个第三延伸线交点在所述场景线上时,或者,当所述候选场景线在所述第三延伸线交点所形成的线段之内时,将所述候选场景线作为所述吸附线点。
在一个实施例中,所述吸附线点模块330,具体还用于:
获取所述场景线与所述移动线之间的夹角,得到线间夹角;当所述线间夹角小于预设夹角阈值,确定所述场景线为所述候选场景线。
在一个实施例中,所述移动元素由移动线和移动点组成,所述吸附线点模块330,包括:
第一吸附线点确定子模块,用于当所述场景线点中存在有与所述移动线具有吸附关系的场景线点,获取与所述移动线具有吸附关系的场景线点,作为所述吸附线点;第二吸附线点确定子模块,用于当所述场景线点中不存在有与所述移动线具有吸附关系的场景线点,获取与所述移动点具有吸附关系的场景线点,作为所述吸附线点。
上述提供的元素吸附装置可用于执行上述任意实施例提供的元素吸附方法,具备相应的功能和有益效果。
关于元素吸附装置的具体限定可以参见上文中对于元素吸附方法的限定,在此不再赘述。上述元素吸附装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
实施例四
图11是实施例四的一种电子白板设备的结构示意图。如图11所示,该电子白板设备包括:处理器40、存储器41、具有触摸功能的显示屏42、输入装置43、输出装置44以及通信装置45。该电子白板设备中处理器40的数量可以是一个或者多个,图11中以一个处理器40为例。该电子白板设备中存储器41的数量可以是一个或者多个,图11中以一个存储器41为例。该批注显示设备的处理器40、存储器41、显示屏42、输入装置43、输出装置44以及通信装置45可以通过总线或者其他方式连接,图11中以通过总线连接为例。实施例中,电子白板设备可以是电脑,手机,平板,投影仪或交互智能平板等。存储器41作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明任意实施例所述的元素吸附方法对应的程序指令/模块(例如,实施例三中的元素获取模块310、线点提取模块320、吸附线点模块330和吸附模块340)。存储器41可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器41可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器41可进一步包括相对于处理器40远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。显示屏42为具有触摸功能的显示屏42,其可以是电容屏、电磁屏或者红外屏。一般而言,显示屏42用于根据处理器40的指示显示数据,还用于接收作用于显示屏42的触摸操作,并将相应的信号发送至处理器40或其他装置。可选的,当显示屏42为红外屏时,其还包括红外触摸框,该红外触摸框设置在显示屏42的四周,其还可以用于接收红外信号,并将该红外信号发送至处理器40或者其他设备。通信装置45,用于与其他设备建立通信连接,其可以是有线通信装置和/或无线通信装置。输入装置43可用于接收输入的数字或者字符信息,以及产生用户设置以及功能控制有关的键信号输入,还可以是用于获取图像的摄像头以及获取音频数据的拾音设备。输出装置44可以包括扬声器等音频设备。需要说明的是,输入装置43和输出装置44的具体组成可以根据实际情况设定。
处理器40通过运行存储在存储器41中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的元素吸附方法。
具体的,实施例中,处理器40执行存储器41中存储的一个或多个程序时,具体实现如下操作:
获取移动元素和场景元素;提取所述移动元素中的移动线点,以及,提取所述场景元素的场景线点;获取与所述移动线点具有吸附关系的场景线点,得到吸附线点;根据所述移动线点和所述吸附线点,将所述移动元素吸附至所述场景元素。
在上述实施例的基础上,一个或多个处理器40还实现如下操作:
获取多个吸附线点的吸附成本;确定最小吸附成本;根据所述最小吸附成本,将所述移动元素吸附至所述场景元素。
在上述实施例的基础上,一个或多个处理器40还实现如下操作:
获取所述吸附线点的吸附方向,并计算所述移动线点在所述吸附方向上与所述吸附线点的平移距离;根据所述移动线点与所述吸附线点之间的夹角计算旋转角度,并计算所述移动线点在旋转所述旋转角度后、在所述吸附方向上与所述吸附线点的旋转后平移距离;将所述平移距离、所述旋转角度和所述旋转后平移距离,作为所述吸附成本。
在上述实施例的基础上,一个或多个处理器40还实现如下操作:
计算所述移动线点的移动方向与所述吸附线点的候选吸附方向之间的方向夹角;当所述方向夹角小于预设夹角阈值,则确定所述吸附线点的候选吸附方向为所述吸附方向。
在上述实施例的基础上,一个或多个处理器40还实现如下操作:
在多个吸附成本的平移距离中,确定最小平移距离;将所述最小平移距离对应的吸附成本,作为所述最小吸附成本;若所述最小平移距离对应的吸附成本具有多个,所述确定最小吸附成本,还包括:在所述最小平移距离对应的多个吸附成本中,确定最小旋转后平移距离;将所述最小旋转后平移距离对应的吸附成本,作为所述最小吸附成本;若所述最小旋转后平移距离对应的吸附成本具有多个,所述确定最小吸附成本,还包括:在所述最小旋转后平移距离对应的多个吸附成本中,确定最小旋转角度;将所述最小旋转角度对应的吸附成本,作为所述最小吸附成本。
在上述实施例的基础上,一个或多个处理器40还实现如下操作:
将所述移动元素按照所述吸附方向移动所述最小吸附成本中的平移距离;将所述移动元素旋转所述最小吸附成本中的旋转角度;将旋转后的移动元素,按照所述吸附方向移动所述最小吸附成本中的旋转后平移距离。
在上述实施例的基础上,一个或多个处理器40还实现如下操作:
标记所述移动元素为已吸附状态;检测处于所述已吸附状态的移动元素的吸附后移动向量;当所述吸附后移动向量符合脱离吸附条件,标记所述移动元素为未吸附状态,并返回至所述获取与所述移动线点具有吸附关系的场景线点,得到吸附线点的步骤。
在上述实施例的基础上,一个或多个处理器40还实现如下操作:
分解所述吸附后移动向量,得到法向移动向量;所述法向移动向量的方向与所述吸附方向相互垂直;当所述法向移动向量超过预设向量阈值,判定所述吸附后移动向量符合脱离吸附条件。
在上述实施例的基础上,一个或多个处理器40还实现如下操作:
确定第一候选场景点;计算所述第一候选场景点与所述移动点之间的第一点间距离;当所述第一点间距离小于预设吸附距离,将所述第一候选场景点作为所述吸附线点。
在上述实施例的基础上,一个或多个处理器40还实现如下操作:
生成与所述移动点的移动方向垂直的第一平面分界线;确定所述第一平面分界线的第一目标平面;将处于所述第一目标平面的场景点,作为所述第一候选场景点。
在上述实施例的基础上,一个或多个处理器40还实现如下操作:
生成所述移动点的移动点延伸线;所述移动点延伸线的延伸方向与所述移动点的移动方向相同;获取所述移动点延伸线与所述场景线的交点,得到第一延伸线交点;计算所述移动点与所述第一延伸线交点的距离,得到第二点间距离;当所述第二点间距离小于预设吸附距离,将所述第一延伸线交点作为所述吸附线点。
在上述实施例的基础上,一个或多个处理器40还实现如下操作:
确定第二候选场景点,并生成所述第二候选场景点的场景点延伸线;所述场景点延伸线的延伸方向与所述移动线的移动方向相反;获取所述场景点延伸线与所述移动线的交点,得到第二延伸线交点;计算所述第二延伸线交点与所述第二候选场景点的距离,得到第三点间距离;当所述第三点间距离小于预设吸附距离,将所述第二候选场景点作为所述吸附线点。
在上述实施例的基础上,一个或多个处理器40还实现如下操作:
生成所述移动线的第二平面分界线;确定所述第二平面分界线的第二目标平面;将处于所述第二目标平面的场景点,作为所述第二候选场景点。
在上述实施例的基础上,一个或多个处理器40还实现如下操作:
生成所述移动线的辅助四边形;所述辅助四边形的一边为所述移动线,所述辅助四边形的另一边为所述移动线在其移动方向上的预设吸附距离;确定候选场景线,并生成所述候选场景线的场景线延伸线;当所述场景线延伸线与所述辅助四边形的任意一边相交,获取所述场景线延伸线与所述辅助四边形的交点,得到多个第三延伸线交点;当任一个第三延伸线交点在所述场景线上时,或者,当所述候选场景线在所述第三延伸线交点所形成的线段之内时,将所述候选场景线作为所述吸附线点。
在上述实施例的基础上,一个或多个处理器40还实现如下操作:
获取所述场景线与所述移动线之间的夹角,得到线间夹角;当所述线间夹角小于预设夹角阈值,确定所述场景线为所述候选场景线。
在上述实施例的基础上,一个或多个处理器40还实现如下操作:
当所述场景线点中存在有与所述移动线具有吸附关系的场景线点,获取与所述移动线具有吸附关系的场景线点,作为所述吸附线点;当所述场景线点中不存在有与所述移动线具有吸附关系的场景线点,获取与所述移动点具有吸附关系的场景线点,作为所述吸附线点。
实施例五
本发明实施例五提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种元素吸附方法,包括:
获取移动元素和场景元素;
提取所述移动元素中的移动线点,以及,提取所述场景元素的场景线点;
获取与所述移动线点具有吸附关系的场景线点,得到吸附线点;
根据所述移动线点和所述吸附线点,将所述移动元素吸附至所述场景元素。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的元素吸附方法操作,还可以执行本发明任意实施例所提供的元素吸附方法中的相关操作,且具备相应的功能和有益效果。
本申请公开了A1、一种元素吸附方法,所述方法包括:
获取移动元素和场景元素;
提取所述移动元素中的移动线点,以及,提取所述场景元素的场景线点;
获取与所述移动线点具有吸附关系的场景线点,得到吸附线点;
根据所述移动线点和所述吸附线点,将所述移动元素吸附至所述场景元素。
A2、根据A1所述的方法,所述吸附线点具有多个,所述根据所述移动线点和所述吸附线点,将所述移动元素吸附至所述场景元素,包括:
获取多个吸附线点的吸附成本;
确定最小吸附成本;
根据所述最小吸附成本,将所述移动元素吸附至所述场景元素。
A3、根据A2所述的方法,所述获取多个吸附线点的吸附成本,包括:
获取所述吸附线点的吸附方向,并计算所述移动线点在所述吸附方向上与所述吸附线点的平移距离;
根据所述移动线点与所述吸附线点之间的夹角计算旋转角度,并计算所述移动线点在旋转所述旋转角度后、在所述吸附方向上与所述吸附线点的旋转后平移距离;
将所述平移距离、所述旋转角度和所述旋转后平移距离,作为所述吸附成本。
A4、根据A3所述的方法,所述吸附线点具有候选吸附方向,所述移动线点具有移动方向,所述获取所述吸附线点的吸附方向,包括:
计算所述移动线点的移动方向与所述吸附线点的候选吸附方向之间的方向夹角;
当所述方向夹角小于预设夹角阈值,则确定所述吸附线点的候选吸附方向为所述吸附方向。
A5、根据A3所述的方法,其特征在于,所述确定最小吸附成本,包括:
在多个吸附成本的平移距离中,确定最小平移距离;
将所述最小平移距离对应的吸附成本,作为所述最小吸附成本;
若所述最小平移距离对应的吸附成本具有多个,所述确定最小吸附成本,还包括:
在所述最小平移距离对应的多个吸附成本中,确定最小旋转后平移距离;
将所述最小旋转后平移距离对应的吸附成本,作为所述最小吸附成本;
若所述最小旋转后平移距离对应的吸附成本具有多个,所述确定最小吸附成本,还包括:
在所述最小旋转后平移距离对应的多个吸附成本中,确定最小旋转角度;
将所述最小旋转角度对应的吸附成本,作为所述最小吸附成本。
A6、根据A3所述的方法,其特征在于,所述根据所述最小吸附成本,将所述移动元素吸附至所述场景元素,包括:
将所述移动元素按照所述吸附方向移动所述最小吸附成本中的平移距离;
将所述移动元素旋转所述最小吸附成本中的旋转角度;
将旋转后的移动元素,按照所述吸附方向移动所述最小吸附成本中的旋转后平移距离。
A7、根据A3所述的方法,其特征在于,在所述将所述移动元素吸附至所述场景元素之后,还包括:
标记所述移动元素为已吸附状态;
检测处于所述已吸附状态的移动元素的吸附后移动向量;
当所述吸附后移动向量符合脱离吸附条件,标记所述移动元素为未吸附状态,并返回至所述获取与所述移动线点具有吸附关系的场景线点,得到吸附线点的步骤。
A8、根据权利要求7所述的方法,其特征在于,还包括:
分解所述吸附后移动向量,得到法向移动向量;所述法向移动向量的方向与所述吸附方向相互垂直;
当所述法向移动向量超过预设向量阈值,判定所述吸附后移动向量符合脱离吸附条件。
A9、根据A1所述的方法,所述移动线点为移动点,所述场景线点为场景点,所述获取与所述移动线点具有吸附关系的场景线点,得到吸附线点,包括:
确定第一候选场景点;
计算所述第一候选场景点与所述移动点之间的第一点间距离;
当所述第一点间距离小于预设吸附距离,将所述第一候选场景点作为所述吸附线点。
A10、根据A9所述的方法,所述确定第一候选场景点,包括:
生成与所述移动点的移动方向垂直的第一平面分界线;
确定所述第一平面分界线的第一目标平面;
将处于所述第一目标平面的场景点,作为所述第一候选场景点。
A11、根据A1所述的方法,所述移动线点为移动点,所述场景线点为场景线,所述获取与所述移动线点具有吸附关系的场景线点,得到吸附线点,包括:
生成所述移动点的移动点延伸线;所述移动点延伸线的延伸方向与所述移动点的移动方向相同;
获取所述移动点延伸线与所述场景线的交点,得到第一延伸线交点;
计算所述移动点与所述第一延伸线交点的距离,得到第二点间距离;
当所述第二点间距离小于预设吸附距离,将所述第一延伸线交点作为所述吸附线点。
A12、根据A1所述的方法,所述移动线点为移动线,所述场景线点为场景点,所述获取与所述移动线点具有吸附关系的场景线点,得到吸附线点,包括:
确定第二候选场景点,并生成所述第二候选场景点的场景点延伸线;所述场景点延伸线的延伸方向与所述移动线的移动方向相反;
获取所述场景点延伸线与所述移动线的交点,得到第二延伸线交点;
计算所述第二延伸线交点与所述第二候选场景点的距离,得到第三点间距离;
当所述第三点间距离小于预设吸附距离,将所述第二候选场景点作为所述吸附线点。
A13、根据A12所述的方法,所述确定第二候选场景点,包括:
生成所述移动线的第二平面分界线;
确定所述第二平面分界线的第二目标平面;
将处于所述第二目标平面的场景点,作为所述第二候选场景点。
A14、根据A1所述的方法,所述移动线点为移动线,所述场景线点为场景线,所述获取与所述移动线点具有吸附关系的场景线点,得到吸附线点,包括:
生成所述移动线的辅助四边形;所述辅助四边形的一边为所述移动线,所述辅助四边形的另一边为所述移动线在其移动方向上的预设吸附距离;
确定候选场景线,并生成所述候选场景线的场景线延伸线;
当所述场景线延伸线与所述辅助四边形的任意一边相交,获取所述场景线延伸线与所述辅助四边形的交点,得到多个第三延伸线交点;
当任一个第三延伸线交点在所述场景线上时,或者,当所述候选场景线在所述第三延伸线交点所形成的线段之内时,将所述候选场景线作为所述吸附线点。
A15、根据A14所述的方法,所述确定候选场景线,包括:
获取所述场景线与所述移动线之间的夹角,得到线间夹角;
当所述线间夹角小于预设夹角阈值,确定所述场景线为所述候选场景线。
A16、根据A1所述的方法,所述移动元素由移动线和移动点组成,所述获取与所述移动线点具有吸附关系的场景线点,得到吸附线点,包括:
当所述场景线点中存在有与所述移动线具有吸附关系的场景线点,获取与所述移动线具有吸附关系的场景线点,作为所述吸附线点;
当所述场景线点中不存在有与所述移动线具有吸附关系的场景线点,获取与所述移动点具有吸附关系的场景线点,作为所述吸附线点。
本申请还公开了B17、一种元素吸附装置,所述装置包括:
元素获取模块,用于获取移动元素和场景元素;
线点提取模块,用于提取所述移动元素中的移动线点,以及,提取所述场景元素的场景线点;
吸附线点模块,用于获取与所述移动线点具有吸附关系的场景线点,得到吸附线点;
吸附模块,用于根据所述移动线点和所述吸附线点,将所述移动元素吸附至所述场景元素。
B18、根据B17所述的装置,所述吸附线点具有多个,所述吸附模块,包括:
成本获取子模块,用于获取多个吸附线点的吸附成本;
最小成本子模块,用于确定最小吸附成本;
吸附子模块,用于根据所述最小吸附成本,将所述移动元素吸附至所述场景元素。
B19、根据B18所述的装置,所述成本获取子模块,包括:
第一计算单元,用于获取所述吸附线点的吸附方向,并计算所述移动线点在所述吸附方向上与所述吸附线点的平移距离;
第二计算单元,用于根据所述移动线点与所述吸附线点之间的夹角计算旋转角度,并计算所述移动线点在旋转所述旋转角度后、在所述吸附方向上与所述吸附线点的旋转后平移距离;
成本确定单元,用于将所述平移距离、所述旋转角度和所述旋转后平移距离,作为所述吸附成本。
B20、根据B19所述的装置,所述吸附线点具有候选吸附方向,所述移动线点具有移动方向,所述第一计算单元,包括:
夹角计算子单元,用于计算所述移动线点的移动方向与所述吸附线点的候选吸附方向之间的方向夹角;吸附方向子单元,用于当所述方向夹角小于预设夹角阈值,则确定所述吸附线点的候选吸附方向为所述吸附方向。
B21、根据B19所述的装置,所述最小成本子模块,包括:
最小平移距离单元,用于在多个吸附成本的平移距离中,确定最小平移距离;成本确定单元,用于将所述最小平移距离对应的吸附成本,作为所述最小吸附成本;最小旋转后平移距离单元,用于在所述最小平移距离对应的多个吸附成本中,确定最小旋转后平移距离;所述成本确定单元,还用于将所述最小旋转后平移距离对应的吸附成本,作为所述最小吸附成本;最小旋转角度单元,用于在所述最小旋转后平移距离对应的多个吸附成本中,确定最小旋转角度;所述成本确定单元,还用于将所述最小旋转角度对应的吸附成本,作为所述最小吸附成本。
B22、根据B19所述的装置,所述吸附子模块,具体用于:
将所述移动元素按照所述吸附方向移动所述最小吸附成本中的平移距离;将所述移动元素旋转所述最小吸附成本中的旋转角度;将旋转后的移动元素,按照所述吸附方向移动所述最小吸附成本中的旋转后平移距离。
B23、根据B19所述的装置,还包括:
第一标记模块,用于标记所述移动元素为已吸附状态;
向量检测模块,用于检测处于所述已吸附状态的移动元素的吸附后移动向量;
第二标记模块,用于当所述吸附后移动向量符合脱离吸附条件,标记所述移动元素为未吸附状态,并返回至所述获取与所述移动线点具有吸附关系的场景线点,得到吸附线点的步骤。
B24、根据B23所述的装置,还包括:
向量分解模块,用于分解所述吸附后移动向量,得到法向移动向量;所述法向移动向量的方向与所述吸附方向相互垂直;
脱离判定模块,用于当所述法向移动向量超过预设向量阈值,判定所述吸附后移动向量符合脱离吸附条件。
B25、根据B17所述的装置,所述移动线点为移动点,所述场景线点为场景点,所述吸附线点模块,具体用于:
确定第一候选场景点;计算所述第一候选场景点与所述移动点之间的第一点间距离;当所述第一点间距离小于预设吸附距离,将所述第一候选场景点作为所述吸附线点。
B26、根据B25所述的装置,所述吸附线点模块,具体还用于:
生成与所述移动点的移动方向垂直的第一平面分界线;确定所述第一平面分界线的第一目标平面;将处于所述第一目标平面的场景点,作为所述第一候选场景点。
B27、根据B17所述的装置,所述移动线点为移动点,所述场景线点为场景线,所述吸附线点模块,具体用于:
生成所述移动点的移动点延伸线;所述移动点延伸线的延伸方向与所述移动点的移动方向相同;获取所述移动点延伸线与所述场景线的交点,得到第一延伸线交点;计算所述移动点与所述第一延伸线交点的距离,得到第二点间距离;当所述第二点间距离小于预设吸附距离,将所述第一延伸线交点作为所述吸附线点。
B28、根据B17所述的装置,所述移动线点为移动线,所述场景线点为场景点,所述吸附线点模块,具体用于:
确定第二候选场景点,并生成所述第二候选场景点的场景点延伸线;所述场景点延伸线的延伸方向与所述移动线的移动方向相反;获取所述场景点延伸线与所述移动线的交点,得到第二延伸线交点;计算所述第二延伸线交点与所述第二候选场景点的距离,得到第三点间距离;当所述第三点间距离小于预设吸附距离,将所述第二候选场景点作为所述吸附线点。
B29、根据B28所述的装置,所述吸附线点模块,具体还用于:
生成所述移动线的第二平面分界线;确定所述第二平面分界线的第二目标平面;将处于所述第二目标平面的场景点,作为所述第二候选场景点。
B30、根据B17所述的装置,所述移动线点为移动线,所述场景线点为场景线,所述吸附线点模块,具体用于:
生成所述移动线的辅助四边形;所述辅助四边形的一边为所述移动线,所述辅助四边形的另一边为所述移动线在其移动方向上的预设吸附距离;确定候选场景线,并生成所述候选场景线的场景线延伸线;当所述场景线延伸线与所述辅助四边形的任意一边相交,获取所述场景线延伸线与所述辅助四边形的交点,得到多个第三延伸线交点;当任一个第三延伸线交点在所述场景线上时,或者,当所述候选场景线在所述第三延伸线交点所形成的线段之内时,将所述候选场景线作为所述吸附线点。
B31、根据B30所述的装置,所述吸附线点模块,具体还用于:
获取所述场景线与所述移动线之间的夹角,得到线间夹角;当所述线间夹角小于预设夹角阈值,确定所述场景线为所述候选场景线。
B32、根据B17所述的装置,所述移动元素由移动线和移动点组成,所述吸附线点模块,包括:
第一吸附线点确定子模块,用于当所述场景线点中存在有与所述移动线具有吸附关系的场景线点,获取与所述移动线具有吸附关系的场景线点,作为所述吸附线点;第二吸附线点确定子模块,用于当所述场景线点中不存在有与所述移动线具有吸附关系的场景线点,获取与所述移动点具有吸附关系的场景线点,作为所述吸附线点。
Claims (33)
1.一种元素吸附方法,其特征在于,所述方法包括:
获取移动元素和场景元素;
提取所述移动元素中的移动线点,以及,提取所述场景元素的场景线点;
获取与所述移动线点具有吸附关系的场景线点,得到吸附线点;所述吸附线点具有多个;
根据所述移动线点和所述吸附线点,将所述移动元素吸附至所述场景元素;其中,获取多个吸附线点的吸附成本;所述吸附成本为将所述移动线点吸附至吸附线点时所需移动的平移距离、旋转的角度、旋转后所需移动的距离;确定最小吸附成本;根据所述最小吸附成本,将所述移动元素吸附至所述场景元素。
2.根据权利要求1所述的方法,其特征在于,所述获取多个吸附线点的吸附成本,包括:
获取所述吸附线点的吸附方向,并计算所述移动线点在所述吸附方向上与所述吸附线点的平移距离;
根据所述移动线点与所述吸附线点之间的夹角计算旋转角度,并计算所述移动线点在旋转所述旋转角度后、在所述吸附方向上与所述吸附线点的旋转后平移距离;
将所述平移距离、所述旋转角度和所述旋转后平移距离,作为所述吸附成本。
3.根据权利要求2所述的方法,其特征在于,所述吸附线点具有候选吸附方向,所述移动线点具有移动方向,所述获取所述吸附线点的吸附方向,包括:
计算所述移动线点的移动方向与所述吸附线点的候选吸附方向之间的方向夹角;
当所述方向夹角小于预设夹角阈值,则确定所述吸附线点的候选吸附方向为所述吸附方向。
4.根据权利要求2所述的方法,其特征在于,所述确定最小吸附成本,包括:
在多个吸附成本的平移距离中,确定最小平移距离;
将所述最小平移距离对应的吸附成本,作为所述最小吸附成本;
若所述最小平移距离对应的吸附成本具有多个,所述确定最小吸附成本,还包括:
在所述最小平移距离对应的多个吸附成本中,确定最小旋转后平移距离;
将所述最小旋转后平移距离对应的吸附成本,作为所述最小吸附成本;
若所述最小旋转后平移距离对应的吸附成本具有多个,所述确定最小吸附成本,还包括:
在所述最小旋转后平移距离对应的多个吸附成本中,确定最小旋转角度;
将所述最小旋转角度对应的吸附成本,作为所述最小吸附成本。
5.根据权利要求2所述的方法,其特征在于,所述根据所述最小吸附成本,将所述移动元素吸附至所述场景元素,包括:
将所述移动元素按照所述吸附方向移动所述最小吸附成本中的平移距离;
将所述移动元素旋转所述最小吸附成本中的旋转角度;
将旋转后的移动元素,按照所述吸附方向移动所述最小吸附成本中的旋转后平移距离。
6.根据权利要求2所述的方法,其特征在于,在所述将所述移动元素吸附至所述场景元素之后,还包括:
标记所述移动元素为已吸附状态;
检测处于所述已吸附状态的移动元素的吸附后移动向量;
当所述吸附后移动向量符合脱离吸附条件,标记所述移动元素为未吸附状态,并返回至所述获取与所述移动线点具有吸附关系的场景线点,得到吸附线点的步骤。
7.根据权利要求6所述的方法,其特征在于,还包括:
分解所述吸附后移动向量,得到法向移动向量;所述法向移动向量的方向与所述吸附方向相互垂直;
当所述法向移动向量超过预设向量阈值,判定所述吸附后移动向量符合脱离吸附条件。
8.根据权利要求1所述的方法,其特征在于,所述移动线点为移动点,所述场景线点为场景点,所述获取与所述移动线点具有吸附关系的场景线点,得到吸附线点,包括:
确定第一候选场景点;
计算所述第一候选场景点与所述移动点之间的第一点间距离;
当所述第一点间距离小于预设吸附距离,将所述第一候选场景点作为所述吸附线点。
9.根据权利要求8所述的方法,其特征在于,所述确定第一候选场景点,包括:
生成与所述移动点的移动方向垂直的第一平面分界线;
确定所述第一平面分界线的第一目标平面;
将处于所述第一目标平面的场景点,作为所述第一候选场景点。
10.根据权利要求1所述的方法,其特征在于,所述移动线点为移动点,所述场景线点为场景线,所述获取与所述移动线点具有吸附关系的场景线点,得到吸附线点,包括:
生成所述移动点的移动点延伸线;所述移动点延伸线的延伸方向与所述移动点的移动方向相同;
获取所述移动点延伸线与所述场景线的交点,得到第一延伸线交点;
计算所述移动点与所述第一延伸线交点的距离,得到第二点间距离;
当所述第二点间距离小于预设吸附距离,将所述第一延伸线交点作为所述吸附线点。
11.根据权利要求1所述的方法,其特征在于,所述移动线点为移动线,所述场景线点为场景点,所述获取与所述移动线点具有吸附关系的场景线点,得到吸附线点,包括:
确定第二候选场景点,并生成所述第二候选场景点的场景点延伸线;所述场景点延伸线的延伸方向与所述移动线的移动方向相反;
获取所述场景点延伸线与所述移动线的交点,得到第二延伸线交点;
计算所述第二延伸线交点与所述第二候选场景点的距离,得到第三点间距离;
当所述第三点间距离小于预设吸附距离,将所述第二候选场景点作为所述吸附线点。
12.根据权利要求11所述的方法,其特征在于,所述确定第二候选场景点,包括:
生成所述移动线的第二平面分界线;
确定所述第二平面分界线的第二目标平面;
将处于所述第二目标平面的场景点,作为所述第二候选场景点。
13.根据权利要求1所述的方法,其特征在于,所述移动线点为移动线,所述场景线点为场景线,所述获取与所述移动线点具有吸附关系的场景线点,得到吸附线点,包括:
生成所述移动线的辅助四边形;所述辅助四边形的一边为所述移动线,所述辅助四边形的另一边为所述移动线在其移动方向上的预设吸附距离;
确定候选场景线,并生成所述候选场景线的场景线延伸线;
当所述场景线延伸线与所述辅助四边形的任意一边相交,获取所述场景线延伸线与所述辅助四边形的交点,得到多个第三延伸线交点;
当任一个第三延伸线交点在所述场景线上时,或者,当所述候选场景线在所述第三延伸线交点所形成的线段之内时,将所述候选场景线作为所述吸附线点。
14.根据权利要求13所述的方法,其特征在于,所述确定候选场景线,包括:
获取所述场景线与所述移动线之间的夹角,得到线间夹角;
当所述线间夹角小于预设夹角阈值,确定所述场景线为所述候选场景线。
15.根据权利要求1所述的方法,其特征在于,所述移动元素由移动线和移动点组成,所述获取与所述移动线点具有吸附关系的场景线点,得到吸附线点,包括:
当所述场景线点中存在有与所述移动线具有吸附关系的场景线点,获取与所述移动线具有吸附关系的场景线点,作为所述吸附线点;
当所述场景线点中不存在有与所述移动线具有吸附关系的场景线点,获取与所述移动点具有吸附关系的场景线点,作为所述吸附线点。
16.一种元素吸附装置,其特征在于,所述装置包括:
元素获取模块,用于获取移动元素和场景元素;
线点提取模块,用于提取所述移动元素中的移动线点,以及,提取所述场景元素的场景线点;
吸附线点模块,用于获取与所述移动线点具有吸附关系的场景线点,得到吸附线点;所述吸附线点具有多个;
吸附模块,用于根据所述移动线点和所述吸附线点,将所述移动元素吸附至所述场景元素;其中,获取多个吸附线点的吸附成本;所述吸附成本为将所述移动线点吸附至吸附线点时所需移动的平移距离、旋转的角度、旋转后所需移动的距离;确定最小吸附成本;根据所述最小吸附成本,将所述移动元素吸附至所述场景元素。
17.根据权利要求16所述的装置,其特征在于,所述吸附线点具有多个,所述吸附模块,包括:
成本获取子模块,用于获取多个吸附线点的吸附成本;
最小成本子模块,用于确定最小吸附成本;
吸附子模块,用于根据所述最小吸附成本,将所述移动元素吸附至所述场景元素。
18.根据权利要求17所述的装置,其特征在于,所述成本获取子模块,包括:
第一计算单元,用于获取所述吸附线点的吸附方向,并计算所述移动线点在所述吸附方向上与所述吸附线点的平移距离;
第二计算单元,用于根据所述移动线点与所述吸附线点之间的夹角计算旋转角度,并计算所述移动线点在旋转所述旋转角度后、在所述吸附方向上与所述吸附线点的旋转后平移距离;
成本确定单元,用于将所述平移距离、所述旋转角度和所述旋转后平移距离,作为所述吸附成本。
19.根据权利要求18所述的装置,其特征在于,所述吸附线点具有候选吸附方向,所述移动线点具有移动方向,所述第一计算单元,包括:
夹角计算子单元,用于计算所述移动线点的移动方向与所述吸附线点的候选吸附方向之间的方向夹角;吸附方向子单元,用于当所述方向夹角小于预设夹角阈值,则确定所述吸附线点的候选吸附方向为所述吸附方向。
20.根据权利要求18所述的装置,其特征在于,所述最小成本子模块,包括:
最小平移距离单元,用于在多个吸附成本的平移距离中,确定最小平移距离;成本确定单元,用于将所述最小平移距离对应的吸附成本,作为所述最小吸附成本;最小旋转后平移距离单元,用于在所述最小平移距离对应的多个吸附成本中,确定最小旋转后平移距离;所述成本确定单元,还用于将所述最小旋转后平移距离对应的吸附成本,作为所述最小吸附成本;最小旋转角度单元,用于在所述最小旋转后平移距离对应的多个吸附成本中,确定最小旋转角度;所述成本确定单元,还用于将所述最小旋转角度对应的吸附成本,作为所述最小吸附成本。
21.根据权利要求18所述的装置,其特征在于,所述吸附子模块,具体用于:
将所述移动元素按照所述吸附方向移动所述最小吸附成本中的平移距离;将所述移动元素旋转所述最小吸附成本中的旋转角度;将旋转后的移动元素,按照所述吸附方向移动所述最小吸附成本中的旋转后平移距离。
22.根据权利要求18所述的装置,其特征在于,还包括:
第一标记模块,用于标记所述移动元素为已吸附状态;
向量检测模块,用于检测处于所述已吸附状态的移动元素的吸附后移动向量;
第二标记模块,用于当所述吸附后移动向量符合脱离吸附条件,标记所述移动元素为未吸附状态,并返回至所述获取与所述移动线点具有吸附关系的场景线点,得到吸附线点的步骤。
23.根据权利要求22所述的装置,其特征在于,还包括:
向量分解模块,用于分解所述吸附后移动向量,得到法向移动向量;所述法向移动向量的方向与所述吸附方向相互垂直;
脱离判定模块,用于当所述法向移动向量超过预设向量阈值,判定所述吸附后移动向量符合脱离吸附条件。
24.根据权利要求16所述的装置,其特征在于,所述移动线点为移动点,所述场景线点为场景点,所述吸附线点模块,具体用于:
确定第一候选场景点;计算所述第一候选场景点与所述移动点之间的第一点间距离;当所述第一点间距离小于预设吸附距离,将所述第一候选场景点作为所述吸附线点。
25.根据权利要求24所述的装置,其特征在于,所述吸附线点模块,具体还用于:
生成与所述移动点的移动方向垂直的第一平面分界线;确定所述第一平面分界线的第一目标平面;将处于所述第一目标平面的场景点,作为所述第一候选场景点。
26.根据权利要求16所述的装置,其特征在于,所述移动线点为移动点,所述场景线点为场景线,所述吸附线点模块,具体用于:
生成所述移动点的移动点延伸线;所述移动点延伸线的延伸方向与所述移动点的移动方向相同;获取所述移动点延伸线与所述场景线的交点,得到第一延伸线交点;计算所述移动点与所述第一延伸线交点的距离,得到第二点间距离;当所述第二点间距离小于预设吸附距离,将所述第一延伸线交点作为所述吸附线点。
27.根据权利要求16所述的装置,其特征在于,所述移动线点为移动线,所述场景线点为场景点,所述吸附线点模块,具体用于:
确定第二候选场景点,并生成所述第二候选场景点的场景点延伸线;所述场景点延伸线的延伸方向与所述移动线的移动方向相反;获取所述场景点延伸线与所述移动线的交点,得到第二延伸线交点;计算所述第二延伸线交点与所述第二候选场景点的距离,得到第三点间距离;当所述第三点间距离小于预设吸附距离,将所述第二候选场景点作为所述吸附线点。
28.根据权利要求27所述的装置,其特征在于,所述吸附线点模块,具体还用于:
生成所述移动线的第二平面分界线;确定所述第二平面分界线的第二目标平面;将处于所述第二目标平面的场景点,作为所述第二候选场景点。
29.根据权利要求16所述的装置,其特征在于,所述移动线点为移动线,所述场景线点为场景线,所述吸附线点模块,具体用于:
生成所述移动线的辅助四边形;所述辅助四边形的一边为所述移动线,所述辅助四边形的另一边为所述移动线在其移动方向上的预设吸附距离;确定候选场景线,并生成所述候选场景线的场景线延伸线;当所述场景线延伸线与所述辅助四边形的任意一边相交,获取所述场景线延伸线与所述辅助四边形的交点,得到多个第三延伸线交点;当任一个第三延伸线交点在所述场景线上时,或者,当所述候选场景线在所述第三延伸线交点所形成的线段之内时,将所述候选场景线作为所述吸附线点。
30.根据权利要求29所述的装置,其特征在于,所述吸附线点模块,具体还用于:
获取所述场景线与所述移动线之间的夹角,得到线间夹角;当所述线间夹角小于预设夹角阈值,确定所述场景线为所述候选场景线。
31.根据权利要求16所述的装置,其特征在于,所述移动元素由移动线和移动点组成,所述吸附线点模块,包括:
第一吸附线点确定子模块,用于当所述场景线点中存在有与所述移动线具有吸附关系的场景线点,获取与所述移动线具有吸附关系的场景线点,作为所述吸附线点;第二吸附线点确定子模块,用于当所述场景线点中不存在有与所述移动线具有吸附关系的场景线点,获取与所述移动点具有吸附关系的场景线点,作为所述吸附线点。
32.一种电子白板设备,其特征在于,包括:存储器、具有触摸功能的显示屏以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如下操作:
获取移动元素和场景元素;
提取所述移动元素中的移动线点,以及,提取所述场景元素的场景线点;
获取与所述移动线点具有吸附关系的场景线点,得到吸附线点;所述吸附线点具有多个;
根据所述移动线点和所述吸附线点,将所述移动元素吸附至所述场景元素;其中,获取多个吸附线点的吸附成本;所述吸附成本为将所述移动线点吸附至吸附线点时所需移动的平移距离、旋转的角度、旋转后所需移动的距离;确定最小吸附成本;根据所述最小吸附成本,将所述移动元素吸附至所述场景元素。
33.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-15中任一所述的元素吸附方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810949240.4A CN109191547B (zh) | 2018-08-20 | 2018-08-20 | 元素吸附方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810949240.4A CN109191547B (zh) | 2018-08-20 | 2018-08-20 | 元素吸附方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109191547A CN109191547A (zh) | 2019-01-11 |
CN109191547B true CN109191547B (zh) | 2023-06-02 |
Family
ID=64918439
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810949240.4A Active CN109191547B (zh) | 2018-08-20 | 2018-08-20 | 元素吸附方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109191547B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109979020B (zh) * | 2019-04-04 | 2020-12-22 | 广州视源电子科技股份有限公司 | 一种线段吸附方法、装置、设备及存储介质 |
CN111352545A (zh) * | 2019-05-07 | 2020-06-30 | 鸿合科技股份有限公司 | 一种交互式服务的自动吸附方法及相关设备 |
CN113129650B (zh) * | 2019-12-30 | 2023-05-23 | 福建天泉教育科技有限公司 | 一种基于电子三角板的操作方法及终端 |
CN111197980B (zh) * | 2019-12-31 | 2022-03-18 | 上海简家信息技术有限公司 | 一种ar量房智能吸附方法 |
CN112306346B (zh) * | 2020-10-28 | 2021-08-31 | 广州朗国电子科技有限公司 | 三角尺作图方法、装置、存储介质及电子白板 |
CN112764654B (zh) * | 2021-01-29 | 2022-10-25 | 北京达佳互联信息技术有限公司 | 组件的吸附操作方法、装置、终端及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8837815B2 (en) * | 2011-12-14 | 2014-09-16 | Thomson Licensing | Method of filtering a disparity mesh obtained from pixel images |
JP5229599B1 (ja) * | 2012-06-29 | 2013-07-03 | 貴央 山口 | 表示装置及び表示装置の製造方法 |
CA2893586C (en) * | 2014-06-17 | 2021-01-26 | Valorisation-Recherche, Limited Partnership | 3d virtual environment interaction system |
JP6866566B2 (ja) * | 2015-03-19 | 2021-04-28 | 株式会社デンソーウェーブ | ロボット操作装置、及びロボット操作プログラム |
CN106780401B (zh) * | 2017-01-12 | 2018-12-04 | 维沃移动通信有限公司 | 一种图片处理的方法及移动终端 |
CN107169611B (zh) * | 2017-06-09 | 2020-06-02 | 金陵科技学院 | 一种图形化方式规划agv行走区域并监控其运行的方法 |
CN107798715B (zh) * | 2017-10-19 | 2020-12-29 | 广州视睿电子科技有限公司 | 立体图形的对齐吸附方法、装置、计算机设备及存储介质 |
-
2018
- 2018-08-20 CN CN201810949240.4A patent/CN109191547B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109191547A (zh) | 2019-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109191547B (zh) | 元素吸附方法、装置、设备和存储介质 | |
WO2020073860A1 (zh) | 一种视频裁剪方法及装置 | |
CN105511675B (zh) | 触摸控制方法、用户设备、输入处理方法、移动终端及智能终端 | |
CN108875723B (zh) | 对象检测方法、装置和***及存储介质 | |
CN108874292B (zh) | 批注显示方法、装置以及智能交互平板 | |
US9965895B1 (en) | Augmented reality Camera Lucida | |
WO2021098832A1 (zh) | 元素控制方法、装置、设备及存储介质 | |
CN108733296B (zh) | 书写笔迹的擦除方法、装置和设备 | |
CN110070551B (zh) | 视频图像的渲染方法、装置和电子设备 | |
CN109979020B (zh) | 一种线段吸附方法、装置、设备及存储介质 | |
CN111580687B (zh) | 数据处理方法、装置和智能交互设备 | |
CN110781823B (zh) | 录屏检测方法、装置、可读介质及电子设备 | |
CN110956674B (zh) | 图形调整方法、装置、设备及存储介质 | |
CN110853488B (zh) | 一种poi标签显示方法、装置和设备 | |
WO2018000786A1 (zh) | 一种悬浮菜单的自动移动方法和装置 | |
US20220107704A1 (en) | Virtual paintbrush implementing method and apparatus, and computer readable storage medium | |
EP2767897B1 (en) | Method for generating writing data and an electronic device thereof | |
CN111352545A (zh) | 一种交互式服务的自动吸附方法及相关设备 | |
CN107797648B (zh) | 虚拟触摸***和图像识别定位方法、计算机可读存储介质 | |
CN111598149B (zh) | 一种基于注意力机制的回环检测方法 | |
CN112507918A (zh) | 一种手势识别方法 | |
CN103402131A (zh) | 一种二维码识别方法、机顶盒及*** | |
CN109743566A (zh) | 一种用于识别vr视频格式的方法与设备 | |
CN110007838B (zh) | 擦除控件的处理方法、装置和设备 | |
CN105138131B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |