CN109979020B - 一种线段吸附方法、装置、设备及存储介质 - Google Patents
一种线段吸附方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN109979020B CN109979020B CN201910272405.3A CN201910272405A CN109979020B CN 109979020 B CN109979020 B CN 109979020B CN 201910272405 A CN201910272405 A CN 201910272405A CN 109979020 B CN109979020 B CN 109979020B
- Authority
- CN
- China
- Prior art keywords
- point
- adsorption
- line
- projection
- line segment
- 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 659
- 238000000034 method Methods 0.000 title claims abstract description 78
- 239000013598 vector Substances 0.000 claims abstract description 209
- 230000004044 response Effects 0.000 claims abstract description 29
- 230000000875 corresponding effect Effects 0.000 claims description 86
- 239000007787 solid Substances 0.000 claims description 70
- 238000012216 screening Methods 0.000 claims description 64
- 230000001276 controlling effect Effects 0.000 claims description 36
- 238000010521 absorption reaction Methods 0.000 claims description 34
- DMSMPAJRVJJAGA-UHFFFAOYSA-N benzo[d]isothiazol-3-one Chemical compound C1=CC=C2C(=O)NSC2=C1 DMSMPAJRVJJAGA-UHFFFAOYSA-N 0.000 claims description 33
- 230000000007 visual effect Effects 0.000 claims description 25
- 230000015654 memory Effects 0.000 claims description 18
- 230000002596 correlated effect Effects 0.000 claims description 13
- 239000003550 marker Substances 0.000 claims description 9
- 230000000274 adsorptive effect Effects 0.000 claims description 6
- 238000001914 filtration Methods 0.000 claims description 3
- 230000002452 interceptive effect Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 17
- 230000006870 function Effects 0.000 description 11
- 230000000694 effects Effects 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 7
- 230000003993 interaction Effects 0.000 description 6
- 238000005457 optimization Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2008—Assembling, disassembling
Landscapes
- Engineering & Computer Science (AREA)
- Architecture (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明实施例公开了一种线段吸附方法、装置、设备及存储介质,该方法包括:确定显示于画布中各立体元素的线点投影信息;响应于接收到作用在画布中任一线段元素的选定操作,获得选定线段的线点信息;响应于接收到作用于选定线段上的移动操作,确定待吸附线段对应的移动向量;按照线点信息、移动向量、各立体元素的线点投影信息,确定选定线段待吸附的目标立体元素;控制选定线段吸附至目标立体元素;显示组合立体元素。利用该方法,实现了线段到立体元素的智能化吸附,形成了以选定线段和目标立体元素为整体的组合立体元素,从而能够在调整组合立体元素中目标立体元素的状态时附带调整所吸附线段的状态,避免了重新手动调整线段状态的繁琐操作。
Description
技术领域
本发明涉及交互智能平板技术领域,尤其涉及一种线段吸附方法、装置、设备及存储介质。
背景技术
交互智能平板是交互智能设备中较为重要的应用之一,广泛地应用在各种应用场景中,极大提升人们的工作和学习效率。例如,在教育场景中,教师可以在交互智能平板上绘制平面或立体的几何图、结构图等各种元素,以便教师结合图例讲解教学内容。
基于交互智能平板进行立体元素的教学时,通常需要拖动某个线形元素至立体元素上。例如,老师可以用交互智能平板的直尺工具在画布上绘制出一条线段,然后将线段拖动至立体元素上,以将线段的线点与立体元素上的目标部位进行贴合。
然而,在用户拖动线段与立体元素的目标部位贴合后,如果用户对立体元素进行了移动或旋转等操作,则需要重新调整线段与立体元素上目标部位的贴合状态,由此耗费用户时间,效率较低,同时影响用户体验。
发明内容
有鉴于此,本发明实施例提供一种线段吸附方法、装置、设备及存储介质,以解决现有调整交互白板中吸附了线段的立体元素后,需要重新调整线段来吸附立体元素的技术问题。
第一方面,本发明实施例提供了一种线段吸附方法,包括:
确定显示于画布中各立体元素的线点投影信息;
响应于接收到作用在所述画布中任一线段元素的选定操作,获得选定线段的线点信息;
响应于接收到作用于所述选定线段上的移动操作,确定所述待吸附线段对应的移动向量;
按照所述线点信息、移动向量、各所述立体元素的线点投影信息,确定所述选定线段待吸附的目标立体元素;
控制所述选定线段吸附至所述目标立体元素;
显示吸附后形成的组合立体元素。
进一步地,所述按照所述线点信息、移动向量、各所述立体元素的线点投影信息,确定所述选定线段待吸附的目标立体元素,包括:
提取所述线点信息中的点坐标信息和线标示信息,并基于各所述立体元素的线点投影信息,获得各所述立体元素的可视线点投影信息;
根据所述移动向量、所述点坐标信息及各所述可视线点投影信息,确定所述选定线段对应的候选吸附点集合;
根据所述移动向量、所述线标示信息及各所述可视线点投影信息中的线投影标示,确定所述选定线段对应的候选吸附线集合;
如果所述候选吸附线集合为非空,则从所述候选吸附线集合中确定所述选定线段的目标吸附线,将包含所述目标吸附线的立体元素作为目标立体元素;否则,
从所述候选吸附点集合中确定所述选定线段的目标吸附点,并将包含所述目标吸附点的立体元素作为目标立体元素。
进一步地,所述根据所述移动向量、所述点坐标信息及各所述可视线点投影信息,确定所述选定线段对应的候选吸附点集合,包括:
获取所述点坐标信息中选定线段两端点的端点坐标及线段上任一选定点的选定点坐标;
提取各所述可视线点投影信息中的点投影坐标和线投影标示,分别获得投影点信息集合和第一投影边信息集合;
针对所述选定线段的每个端点,根据所述移动向量、所述端点的端点坐标及所述投影点信息集合,确定所述端点待吸附的第一候选投影点,并将所述端点作为待吸附点以及各所述第一候选投影点分别作为候选吸附点,关联添加至所述候选吸附点集合;
根据所述移动向量、选定点坐标及所述第一投影边信息集合,确定所述选定点在待吸附投影边上对应的第二候选投影点,并将所述选定点作为待吸附点以及各所述第二候选投影点分别作为候选吸附点,关联添加至所述候选吸附点集合。
进一步地,根据所述移动向量、所述端点的端点坐标及所述投影点信息集合,确定所述端点待吸附的第一候选投影点,包括:
针对所述投影点信息集合中的每个投影点,基于所述端点坐标及所述投影点的点投影坐标,确定所述端点到所述投影点的坐标向量;
确定所述坐标向量与所述移动向量的向量夹角值;
如果所述向量夹角值的绝对值小于或等于设定夹角阈值,则将所述投影点确定为所述端点待吸附的第一候选投影点。
进一步地,所述根据所述移动向量、所述端点的端点坐标及所述投影点信息集合,确定所述端点待吸附的第一候选投影点,包括:
基于所述移动向量及所述端点的端点坐标,确定所述画布中的有效区域;
从所述投影点信息集合中筛选处于所述有效区域的有效投影点,形成有效投影点集合;
针对所述有效投影点集合中的每个有效投影点,基于所述端点坐标及所述有效投影点的点投影坐标,确定所述端点到所述有效投影点的有效坐标向量;
确定所述有效坐标向量与所述移动向量的有效向量夹角值;
如果所述有效向量夹角值的绝对值小于或等于设定夹角阈值,则将所述有效投影点确定为所述端点待吸附的第一候选投影点。
进一步地,所述基于所述移动向量及所述端点的端点坐标,确定所述画布中的有效区域,包括:
通过与所述移动向量垂直且过所述端点的临界直线,将所述画布划分成两个平面区域,并将包含所述移动向量的平面区域确定为第一区域;
将所述画布中以所述端点为圆心,以设定距离阈值为半径形成的圆形区域确定为第二区域;
将所述第一区域与所述第二区域的相交区域确定为有效区域;或者,将所述第一区域确定为有效区域;或者,将第二区域确定为有效区域。
进一步地,所述根据所述移动向量、选定点坐标及所述第一投影边信息集合,确定所述选定点在待吸附投影边上对应的第二候选投影点,包括:
基于选定点的选定点坐标及所述移动向量,构建以所述选定点为起始端点、方向与所述移动向量平行的射线,并获得所述射线的射线标示;
针对所述第一投影边信息集合中的每个第一投影边,根据所述第一投影边的线投影标示及所述射线标示,确定所述第一投影边是否与所述射线存在第一交点;
若存在,则确定所述第一交点与所述选定点的坐标点距离,并当所述坐标点距离小于设定距离阈值时,确定所述第一投影边为所述选定点的待吸附投影边,所述第一交点为所述选定点的第二候选投影点。
进一步地,所述从所述候选吸附点集合中确定所述选定线段的目标吸附点,包括:
针对所述候选吸附点集合中每个候选吸附点,确定所述候选吸附点到相应待吸附点的点吸附距离和吸附向量;
根据各所述点吸附距离及吸附向量,结合所述移动向量确定所述候选吸附点的判定距离;
比对各候选吸附点的判定距离,将最小判定距离对应的候选吸附点确定为目标吸附点。
进一步地,所述根据所述移动向量、所述线标示信息及各所述可视线点投影信息中的线投影标示,确定所述选定线段对应的候选吸附线集合,包括:
根据所述移动向量及所述线标示信息,构建用于吸附筛选的平行四边形区域;
根据各所述可视线点投影信息中的线投影标示,形成第二投影边信息集合;
根据所述平行四边形区域,从所述第二投影边信息集合中筛选所述选定线段的候选吸附线;
获得包含所述选定线段各所述候选吸附线的候选吸附线集合。
进一步地,所述根据所述移动向量及所述线标示信息,构建用于吸附筛选的平行四边形区域,包括:
根据所述线标示信息中选定线段两端点的端点坐标,确定所述选定线段的线段长度;
确定所述选定线段与所述移动向量构成的夹角值;
构建以所述线段长度为第一边长,设定的吸附距离阈值为第二边长以及边夹角为所述夹角值或为所述夹角值余角的平行四边形区域。
进一步地,所述根据所述平行四边形区域,从所述第二投影边信息集合中筛选所述选定线段的候选吸附线,包括:
针对所述第二投影边信息集合中的每个第二投影边,根据所述第二投影边的线投影标示及所述线标示信息,确定所述第二投影边是否与所述选定线段平行;
若平行,则确定所述第二投影边是否满足基于所述平行四边形区域设定的吸附筛选条件;
若满足,则将所述第二投影边确定为所述选定线段的候选吸附线。
进一步地,所述吸附筛选条件包括下述至少一项:
第二投影边延长线与作为第二边的第一阈值距离边存在第二交点,且所述第二交点位于所述第二投影边上;
第二投影边延长线与作为第二边的第二阈值距离边存在第三交点,且所述第三交点位于所述第二投影边上;
第二投影边延长线与作为第二边的第一阈值距离边和第二阈值距离边分别存在第四交点和第五交点,且所述第二投影边处于第四交点和第五交点的连线上。
进一步地,所述从所述候选吸附线集合中确定所述选定线段的目标吸附线,包括:
针对所述候选吸附线集合中的每条候选吸附线,确定所述候选吸附线到所述选定线段的线吸附距离;
比对各候选目标线的线吸附距离,将最小吸附距离对应的候选目标线确定为目标吸附线。
进一步地,当所述目标立体元素通过确定目标吸附点获得时,所述控制所述选定线段吸附至所述目标立体元素,包括:
确定所述目标吸附点对应的所述选定线段上的待吸附点;
确定所述目标吸附点与相应待吸附点的目标点吸附距离和目标吸附向量;
控制所述选定线段沿所述目标吸附向量进行所述目标点吸附距离的偏移,以使所述选定线段上的待吸附点与所述目标立体元素上的目标吸附点相吸附。
进一步地,当所述目标立体元素通过确定目标吸附线获得时,所述控制所述选定线段吸附至所述目标立体元素,包括:
确定所述目标吸附线到选定线段的目标线吸附距离;
将所述选定线段的移动向量确定所述选定线段的吸附移动方向;
控制所述选定线段沿所述吸附移动方向进行所述目标线吸附距离的偏移,以使所述选定线段与所述目标立体元素上的目标吸附线相吸附。
进一步地,当所述目标立体元素通过确定目标吸附点获得时,所述显示吸附后形成的组合立体元素,包括:
根据所述目标吸附点的空间坐标信息,确定所述选定线段的第一线点空间信息;
将所述第一线点空间信息与所述目标立体元素的线点空间信息相结合,构成包含所述选定线段和目标立体元素的第一组合立体元素;
将所述第一组合立体元素投影显示在所述画布中。
进一步地,当所述目标立体元素通过确定目标吸附线获得时,所述显示吸附后形成的组合立体元素,包括:
根据所述目标吸附线的线点空间信息,确定所述选定线段的第二线点空间信息;
将所述第二线点空间信息与所述目标立体元素的线点空间信息相结合,构成包含所述选定线段和目标立体元素的第二组合立体元素;
将所述第二组合立体元素投影显示在所述画布中。
进一步地,在显示吸附后形成的组合立体元素之后,还包括:
接收第一状态调整操作,所述第一状态调整操作作用在所述组合立体元素的目标立体元素上;
控制调整所述组合立体元素,并显示状态调整后的组合立体元素。
进一步地,在显示吸附后形成的组合立体元素之后,还包括:
接收第二状态调整操作,所述第二状态调整操作作用在所述组合立体元素的选定线段上;
控制调整所述选定线段,分别显示所述组合立体元素中的选定线段和目标立体元素的当前状态。
第二方面,本发明实施例还提供了一种线段吸附装置,包括:
第一确定模块,用于确定显示于画布中各立体元素的线点投影信息;
第一响应模块,用于响应于接收到作用在所述画布中任一线段元素的选定操作,获得选定线段的线点信息;
第二响应模块,用于响应于接收到作用于所述选定线段上的移动操作,确定所述待吸附线段对应的移动向量;
第二确定模块,用于按照所述线点信息、移动向量、各所述立体元素的线点投影信息,确定所述选定线段待吸附的目标立体元素;
吸附控制模块,用于控制所述选定线段吸附至所述目标立体元素;
组合显示模块,用于显示吸附后形成的组合立体元素。
进一步地,所述第二确定模块,包括:
信息获取单元,用于提取所述线点信息中的点坐标信息和线标示信息,并基于各所述立体元素的线点投影信息,获得各所述立体元素的可视线点投影信息;
候选点确定单元,用于根据所述移动向量、所述点坐标信息及各所述可视线点投影信息,确定所述选定线段对应的候选吸附点集合;
候选线确定单元,用于根据所述移动向量、所述线标示信息及各所述可视线点投影信息中的线投影标示,确定所述选定线段对应的候选吸附线集合;
吸附目标确定单元,用于当所述候选吸附线集合为非空时,从所述候选吸附线集合中确定所述选定线段的目标吸附线,将包含所述目标吸附线的立体元素作为目标立体元素;否则,
从所述候选吸附点集合中确定所述选定线段的目标吸附点,并将包含所述目标吸附点的立体元素作为目标立体元素。
进一步地,所述候选点确定单元,包括:
第一获取子单元,用于获取所述点坐标信息中选定线段两端点的端点坐标及线段上任一选定点的选定点坐标;
第二获取子单元,用于提取各所述可视线点投影信息中的点投影坐标和线投影标示,分别获得投影点信息集合和第一投影边信息集合;
第一点确定子单元,用于针对所述选定线段的每个端点,根据所述移动向量、所述端点的端点坐标及所述投影点信息集合,确定所述端点待吸附的第一候选投影点,并将所述端点作为待吸附点以及各所述第一候选投影点分别作为候选吸附点,关联添加至所述候选吸附点集合;
第二点确定子单元,用于根据所述移动向量、选定点坐标及所述第一投影边信息集合,确定所述选定点在待吸附投影边上对应的第二候选投影点,并将所述选定点作为待吸附点以及各所述第二候选投影点分别作为候选吸附点,关联添加至所述候选吸附点集合。
进一步地,所述第一点确定子单元,具体用于:
针对所述投影点信息集合中的每个投影点,针对所述选定线段的每个端点,基于所述端点坐标及所述投影点的点投影坐标,确定所述端点到所述投影点的坐标向量;
确定所述坐标向量与所述移动向量的向量夹角值;
如果所述向量夹角值的绝对值小于或等于设定夹角阈值,则将所述投影点确定为所述端点待吸附的第一候选投影点;
将所述端点作为待吸附点以及各所述第一候选投影点分别作为候选吸附点,关联添加至所述候选吸附点集合。
进一步地,所述第一点确定子单元,具体用于:
基于所述移动向量及所述端点的端点坐标,确定所述画布中的有效区域;
从所述投影点信息集合中筛选处于所述有效区域的有效投影点,形成有效投影点集合;
针对所述有效投影点集合中的每个有效投影点,基于所述端点坐标及所述有效投影点的点投影坐标,确定所述端点到所述有效投影点的有效坐标向量;
确定所述有效坐标向量与所述移动向量的有效向量夹角值;
如果所述有效向量夹角值的绝对值小于或等于设定夹角阈值,则将所述有效投影点确定为所述端点待吸附的第一候选投影点;
将所述端点作为待吸附点以及各所述第一候选投影点分别作为候选吸附点,关联添加至所述候选吸附点集合。
进一步地,所述基于所述移动向量及所述端点的端点坐标,确定所述画布中的有效区域,包括:
通过与所述移动向量垂直且过所述端点的临界直线,将所述画布划分成两个平面区域,并将包含所述移动向量的平面区域确定为第一区域;
将所述画布中以所述端点为圆心,以设定距离阈值为半径形成的圆形区域确定为第二区域;
将所述第一区域与所述第二区域的相交区域确定为有效区域;或者,将所述第一区域确定为有效区域;或者,将第二区域确定为有效区域。
进一步地,所述第二点确定子单元,具体用于:
基于选定点的选定点坐标及所述移动向量,构建以所述选定点为起始端点、方向与所述移动向量平行的射线,并获得所述射线的射线标示;
针对所述第一投影边信息集合中的每个第一投影边,根据所述第一投影边的线投影标示及所述射线标示,确定所述第一投影边是否与所述射线存在第一交点;
若存在,则确定所述第一交点与所述选定点的坐标点距离,并当所述坐标点距离小于设定距离阈值时,确定所述第一投影边为所述选定点的待吸附投影边,所述第一交点为所述选定点的第二候选投影点;
将所述选定点作为待吸附点以及各所述第二候选投影点分别作为候选吸附点,关联添加至所述候选吸附点集合。
进一步地,所述从所述候选吸附点集合中确定所述选定线段的目标吸附点,包括:
针对所述候选吸附点集合中每个候选吸附点,确定所述候选吸附点到相应待吸附点的点吸附距离和吸附向量;
根据各所述点吸附距离及吸附向量,结合所述移动向量确定所述候选吸附点的判定距离;
比对各候选吸附点的判定距离,将最小判定距离对应的候选吸附点确定为目标吸附点。
进一步地,所述候选线确定单元,包括:
区域确定子单元,用于根据所述移动向量及所述线标示信息,构建用于吸附筛选的平行四边形区域;
信息筛选子单元,用于根据各所述可视线点投影信息中的线投影标示,形成第二投影边信息集合;
线确定子单元,用于根据所述平行四边形区域,从所述第二投影边信息集合中筛选所述选定线段的候选吸附线;
集合确定子单元,用于获得包含所述选定线段各所述候选吸附线的候选吸附线集合。
进一步地,所述区域确定子单元,具体用于:
根据所述线标示信息中选定线段两端点的端点坐标,确定所述选定线段的线段长度;
确定所述选定线段与所述移动向量构成的夹角值;
构建以所述线段长度为第一边长,设定的吸附距离阈值为第二边长以及边夹角为所述夹角值或为所述夹角值余角的平行四边形区域。
进一步地,所述线确定子单元,具体用于:
针对所述第二投影边信息集合中的每个第二投影边,根据所述第二投影边的线投影标示及所述线标示信息,确定所述第二投影边是否与所述选定线段平行;
若平行,则确定所述第二投影边是否满足基于所述平行四边形区域设定的吸附筛选条件;
若满足,则将所述第二投影边确定为所述选定线段的候选吸附线。
进一步地,所述吸附筛选条件包括下述至少一项:
第二投影边延长线与作为第二边的第一阈值距离边存在第二交点,且所述第二交点位于所述第二投影边上;
第二投影边延长线与作为第二边的第二阈值距离边存在第三交点,且所述第三交点位于所述第二投影边上;
第二投影边延长线与作为第二边的第一阈值距离边和第二阈值距离边分别存在第四交点和第五交点,且所述第二投影边处于第四交点和第五交点的连线上。
进一步地,所述从所述候选吸附线集合中确定所述选定线段的目标吸附线,包括:
针对所述候选吸附线集合中的每条候选吸附线,确定所述候选吸附线到所述选定线段的线吸附距离;
比对各候选目标线的线吸附距离,将最小吸附距离对应的候选目标线确定为目标吸附线。
进一步地,当所述目标立体元素通过确定目标吸附点获得时,所述吸附控制模块,具体用于:
确定所述目标吸附点对应的所述选定线段上的待吸附点;
确定所述目标吸附点与相应待吸附点的目标点吸附距离和目标吸附向量;
控制所述选定线段沿所述目标吸附向量进行所述目标点吸附距离的偏移,以使所述选定线段上的待吸附点与所述目标立体元素上的目标吸附点相吸附。
进一步地,当所述目标立体元素通过确定目标吸附线获得时,所述吸附控制模块,具体用于:
确定所述目标吸附线到选定线段的目标线吸附距离;
将所述选定线段的移动向量确定所述选定线段的吸附移动方向;
控制所述选定线段沿所述吸附移动方向进行所述目标线吸附距离的偏移,以使所述选定线段与所述目标立体元素上的目标吸附线相吸附。
进一步地,当所述目标立体元素通过确定目标吸附点获得时,所述组合显示模块,具体用于:
根据所述目标吸附点的空间坐标信息,确定所述选定线段的第一线点空间信息;
将所述第一线点空间信息与所述目标立体元素的线点空间信息相结合,构成包含所述选定线段和目标立体元素的第一组合立体元素;
将所述第一组合立体元素投影显示在所述画布中。
进一步地,当所述目标立体元素通过确定目标吸附线获得时,所述组合显示模块,具体用于:
根据所述目标吸附线的线点空间信息,确定所述选定线段的第二线点空间信息;
将所述第二线点空间信息与所述目标立体元素的线点空间信息相结合,构成包含所述选定线段和目标立体元素的第二组合立体元素;
将所述第二组合立体元素投影显示在所述画布中。
进一步地,还包括:第一接收模块,用于在显示吸附后形成的组合立体元素之后,接收第一状态调整操作,所述第一状态调整操作作用在所述组合立体元素的目标立体元素上;
第一显示模块,用于控制调整所述组合立体元素,并显示状态调整后的组合立体元素。
进一步地,还包括:
第二接收模块,用于在显示吸附后形成的组合立体元素之后,接收第二状态调整操作,所述第二状态调整操作作用在所述组合立体元素的选定线段上;
第二显示模块,用于控制调整所述选定线段,分别显示所述组合立体元素中的选定线段和目标立体元素的当前状态。
第三方面,本发明实施例还提供了一种线段吸附设备,包括:
存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例第一方面提供的一种线段吸附方法。
第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的线段吸附方法。
上述提供的一种线段吸附方法、装置、设备及存储介质,首先可以获取到显示于画布中各立体元素的线点投影信息,然后根据用户作用在画布中线段上的选定操作,确定选定线段的线点信息,还根据用户作用在选定线段上的移动操作,确定选定线段的移动向量,由此可根据选定线段的线点信息、移动向量以及各立体元素的线点投影信息,来确定线段可吸附的目标立体元素,最终可控制选定线段在移动过程中吸附至目标立体元素,并显示选定线段吸附后形成的组合立体元素。本实施例的上述技术方案,能够根据选定线段的线点信息及移动向量,结合画布中各立体元素的线点投影信息,从各立体元素中确定可吸附的目标立体元素并吸附,由此实现了线段到立体元素的智能化吸附,形成了以选定线段和目标立体元素为整体的组合立体元素,从而能够在调整组合立体元素中目标立体元素的状态时附带调整所吸附线段的状态,避免了重新手动调整线段状态的繁琐操作,提升了教学体验。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明实施例一提供的一种线段吸附方法的流程图;
图2为本发明实施例二提供的一种线段吸附方法的流程图;
图3给出了立体元素投影在画布后的投影示例图;
图4给出了选定线段的数据信息进行三层表示的示意图;
图5给出了组合立体元素的一种显示示例图;
图6给出了组合立体元素的另一种显示示例图;
图7给出了组合立体元素的又一种显示示例图;
图8为本发明实施例二提供的确定候选吸附点集合的实现流程图;
图9为对投影点信息集合中投影点进行筛选的一种实现示例图;
图10为对投影点信息集合中投影点进行筛选的另一种实现示例图;
图11为本发明实施例二提供的确定候选吸附线集合的实现流程图;
图12为所构建用于吸附筛选的平行四边形的示例图;
图13~图15分别给出了所设定吸附筛选条件的一种效果展示图;
图16为本发明实施例三提供的一种线段吸附装置的结构框图;
图17为本发明实施例四提供的一种线段吸附设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定,此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
实施例一
图1为本发明实施例一提供的一种线段吸附方法的流程图。该实施例适用于将画布中的选定线段吸附到立体元素上的情况,其中,该实施例提供的线段吸附方法可以由线段吸附设备执行,该线段吸附设备可以通过软件和/或硬件的方式实现,该线段吸附设备可以是两个或多个物理实体构成,也可以是一个物理实体构成。一般而言,该线段吸附设备可以是电脑,手机,平板或交互智能平板等。
为了便于理解,实施例中以交互智能平板为线段吸附设备进行示例性描述。其中,交互智能平板可以是通过触控技术对显示在显示平板上的内容进行操控和实现人机交互操作的一体化设备,其集成了投影机、电子白板、幕布、音响、电视机以及视频会议终端等一种或多种功能。一般而言,交互智能平板的显示屏可以是电容屏、电阻屏、红外屏或者电磁屏等。用户可以通过手指或者触控笔对交互智能平板进行触控操作。
进一步的,交互智能平板中安装有操作系统自带的应用软件,同时,也安装有从第三方设备或者服务器中下载的应用软件,其中,应用软件的具体类型及内容可以根据实际情况设定,通常,该应用软件具有书写、绘图、批注、课件制作以及展示播放等功能。实施例中设定该应用软件具有绘图、课件制作及展示播放功能,其中,课件制作是指在交互智能平板等计算机设备上通过用户在课件编辑页面的画布上进行元素输入或插入操作,所述元素可以是三维元素或二维元素等,其三维元素或二维元素可直接在画布上绘制形成,或者先基于绘图功能绘制并通过插入操作插入到画布上,且三维元素可以是立体几何元素如四面体、长方体、圆柱以及圆锥等,二维元素可以是点、线以及平面几何元素如四边形、多边形等。此外,展示播放具体可指将课件编辑页面中内容在授课模式下作为演示播放页面进行的课件演示,展示播放具体可通过演示播放按钮触发。可以理解的是,本实施例可以将用户在编辑画布上编辑的元素内容进行展示播放,且在展示播放模式下也可以对展示元素的状态进行调整,如对展示的线段进行选定及移动或旋转操作等。
示例性的,参考图1,本实施例提供的线段吸附方法具体包括:
S101、确定显示于画布中各立体元素的线点投影信息。
在本实施例中,所述画布具体可理解为进行元素绘制或元素展示的二维平面载体。需要说明的是,显示在画布中的立体元素相当于所绘制立体元素在二维平面中投影后的元素,其立体元素的绘制具体在设定的三维场景中实现,之后通过三维矩阵投影原理将绘制的立体元素投影显示在画布中。
在本实施例中,所述线点投影信息具体可理解为三维场景中所绘制立体元素的线和点投影后在画布中的具体标示信息,示例性地,三维场景中立体元素的点以空间坐标形式来标示,立体元素的边则可通过立体元素中处于该边上的两点的空间坐标来表示。相应的,在已知立体元素各顶点的空间坐标后,基于给定的投影矩阵,能够获得立体元素投影到画布后,立体元素各顶点的投影坐标,同时基于顶点的投影坐标,也可表示立体元素各边在画布中的线投影标示。本实施例将立体元素各顶点的投影坐标以及各边的线投影标示统称为线点投影信息。
需要说明的是,本实施例可预先确定立体元素的线点投影信息,并关联存储立体元素在三维空间下线点空间信息与画布中线点投影信息,本步骤可以在触发进行线段的吸附操作时,从关联存储的线点空间及投影信息中,获得画布中当前所显示各立体元素的线点投影信息。
S102、响应于接收到作用在所述画布中任一线段元素的选定操作,获得选定线段的线点信息。
在本实施例中,作为当前显示页或编辑页的画布中,除显示有投影后的立体元素外,还可以显示点、线或者面等平面几何元素,本实施例主要实现线段到立体元素的吸附,可认为画布中当前至少存在一条线段,且用户可对画布中的任一条线段进行选定操作,所述选定操作具体可理解为用户通过鼠标或对触摸显示屏对画布中元素进行点击或触摸选定的操作,本步骤可以响应用户作用在画布中任一线段元素上的选定操作。
具体地,在接收到用户对任一线段元素的选定操作后,其对该操作的响应可以体现在获得选定线段的线点信息,所述线点信息具体可包括选定线段中端点以及线上任一选定点在平面坐标系中的点坐标,以及基于选定线段两端点的坐标信息来表示的选定线段所属线的线标示信息。
示例性地,本步骤具体可以监听用户所触发的选定操作,并确定选定操作作用的目标对象,由此可获知预先记录的该目标对象的相关标示信息,本实施例中该目标对象为一条线段,且可将该线段记为选定线段,预先记录的该选定线段的相关标示信息则为选定线段中端点及所属线的线点信息。
S103、响应于接收到作用于所述选定线段上的移动操作,确定所述待吸附线段对应的移动向量。
在本实施例中,所述移动操作具体可理解为用户通过鼠标对选定线段进行拖拽或通过触摸触摸显示屏对选定线段进行拖拽的操作,本步骤可以响应用户作用在选定线段上的移动操作。
具体地,在接收到用户对选定线段的拖拽操作后,其对该操作的响应可以体现在监听选定线段的被拖拽过程,以获取选定线段被拖拽过程中所经过至少两个拖拽点的拖拽点坐标,且基于获取的至少两个拖拽点坐标,可以确定选定线段在拖拽中的移动向量。
S104、按照所述线点信息、移动向量、各所述立体元素的线点投影信息,确定所述选定线段待吸附的目标立体元素。
在本实施例中,所述线点信息具体可为上述所获取选定线段上端点、选定点以及所属线在画布中的点坐标信息及线标示信息,所述移动向量具体可为选定线段被移动(拖拽)时的移动方向信息。各立体元素的线点投影信息具体可为画布中显示的所有基于点和线构成的立体元素(如长方体、四方体、圆锥体以及圆柱体等,而球体因不基于线点形成,所以不作为本实施例的吸附对象)分别具备的线点投影信息。本实施例具体实现线段到立体元素的吸附,所吸附的立体元素可称为目标立体元素,所述目标立体元素可以是显示在画布中的任一基于点和线构成的立体元素。
需要说明的是,选定线段待吸附的目标立体元素的确定方式可分多种情况考虑,示例性地,一种可以是考虑选定线段中的端点到立体元素中顶点的吸附,另一种可以是考虑选定线段中的任一点到立体元素中边的吸附,还有一种情况可以是考虑选定线段所属线到立体元素中边的吸附。
在本实施例中,可通过本步骤来实现上述几种情况下的目标立体元素确定,首先可分情况来确定选定线段相对立体元素的候选吸附线集合或候选吸附点集合。针对上述线段中点吸附到立体元素顶点的情况,本步骤首先可以根据选定线段的线点信息中的点坐标信息、移动向量以及立体元素中投影点的点投影坐标,确定选定线段的端点可吸附的候选吸附点,并将候选吸附点与选定线段上对应的待吸附点关联添加至候选吸附点集合中,所述待吸附点具体可理解为选定线段上待进行吸附操作的端点或选定点。
针对上述线段中点吸附到立体元素中边的情况,具体可转换为线段中的点到立体元素中边上任一点的吸附,由此,本步骤首先可以根据选定线段的线点信息中的点坐标信息、移动向量以及立体元素中投影边的线投影标示(具体可通过投影点的点投影坐标来标示),来确定选定线段上的点到立体元素的边上可吸附的候选吸附点,同样可将候选吸附点与选定线段上对应的待吸附点关联添加在候选吸附点集合中。
针对上述线段所包含的线吸附到立体元素中边的情况,本步骤首先可以根据选定线段的线点信息中的线标示信息(具体可通过点坐标信息来标示)、移动向量以及立体元素中投影边的线投影标示,来确定选定线段到立体元素可吸附的候选吸附线,且可将候选吸附线与选定线段关联添加至候选吸附线集合中。
基于上述集中几种情况可确定出用于确定目标立体元素的候选吸附线集合(该集合可能为空)及候选吸附点集合,之后本步骤进一步通过筛选规则从候选吸附线集合或候选吸附点集合中确定相应的目标吸附线或目标吸附点,最终,本步骤可以确定目标吸附点或目标吸附线归属的立体元素,并将该立体元素作为目标立体元素。需要说明的是,在目标立体元素的确定过程中,通过设定的筛选规则最终只会确定出一个目标吸附点或一个目标吸附线,由此,本步骤最终只会确定出一个目标立体元素。
S105、控制所述选定线段吸附至所述目标立体元素。
在本实施例中,可以通过位移吸附的方式控制选定线段吸附至目标立体元素,所述位移吸附具体包括了选定线段中待吸目标到目标立体元素上可吸附目标的吸附距离和吸附向量,由此可控制选定线段的待吸目标沿确定的吸附向量进行所确定吸附距离的偏移,从而实现选定线段到目标立体元素的吸附。
需要说明的是,所述待吸目标可以是选定线段中的端点或线段上的任一点,也可以是选定线段,所述可吸附目标可以是目标立体元素中的可吸附点或可吸附线。可以理解的是,所述待吸目标及可吸附目标具体可基于上述S104确定目标立体元素时依赖的目标吸附点或目标吸附线来确定。
示例性地,当目标立体元素通过目标吸附点确定时,所述可吸附目标直接为该目标吸附点,而待吸目标则为目标吸附点关联的待吸附点(端点或线段上的选定点);当目标立体元素通过目标吸附线确定时,所述可吸附目标直接为该目标吸附线,而待吸目标则为选定线段自身。可以知道的是,本实施例基于待吸目标及可吸附目标的不同,其确定吸附距离及吸附向量时的方法也存在不同。
S106、显示吸附后形成的组合立体元素。
在本实施例中,所述组合立体元素具体可理解为选定线段吸附到目标立体元素后组合形成的立体元素,本步骤中的显示具体可指组合立体元素在画布中的显示,但需要说明的是,将组合立体元素时显示在画布中之前,需要确定组合立体元素中各线点的三维标示信息,然后再通过投影矩阵确定组合立体元素中各线点的三维标示信息到画布中的线点投影信息,且最终根据组合立体元素的线点投影信息将组合立体元素显示在画布中。
本发明实施例一提供的一种线段吸附方法,能够根据选定线段的线点信息及移动向量,结合画布中各立体元素的线点投影信息,从各立体元素中确定可吸附的目标立体元素并吸附,由此实现了线段到立体元素的智能化吸附,形成了以选定线段和目标立体元素为整体的组合立体元素,从而能够在调整组合立体元素中目标立体元素的状态时附带调整所吸附线段的状态,避免了重新手动调整线段状态的繁琐操作,提升了教学体验。
实施例二
图2为本发明实施例二提供的一种线段吸附方法的流程图,该实施例以上述实施例为基础进行优化,在本实施例中,进一步将按照所述线点信息、移动向量、各所述立体元素的线点投影信息,确定所述选定线段待吸附的目标立体元素,具体优化为:提取所述线点信息中的点坐标信息和线标示信息,并基于各所述立体元素的线点投影信息,获得各所述立体元素的可视线点投影信息;根据所述移动向量、所述点坐标信息及各所述可视线点投影信息,确定所述选定线段对应的候选吸附点集合;根据所述移动向量、所述线标示信息及各所述可视线点投影信息中的线投影标示,确定所述选定线段对应的候选吸附线集合;如果所述候选吸附线集合为非空,则从所述候选吸附线集合中确定所述选定线段的目标吸附线,将包含所述目标吸附线的立体元素作为目标立体元素;否则,从所述候选吸附点集合中确定所述选定线段的目标吸附点,并将包含所述目标吸附点的立体元素作为目标立体元素。
同时,本实施例在显示吸附后形成的组合立体元素之后,还优化包括了:接收第一状态调整操作,所述第一状态调整操作作用在所述组合立体元素的目标立体元素上;
控制调整所述组合立体元素,并显示状态调整后的组合立体元素。
此外,本实施例在显示吸附后形成的组合立体元素之后,同样优化增加了:
接收第二状态调整操作,所述第二状态调整操作作用在所述组合立体元素的选定线段上;控制调整所述选定线段,分别显示所述组合立体元素中的选定线段和目标立体元素的当前状态。
具体地,如图2所示,本发明实施例提供的一种线段吸附方法,包括如下操作:
S201、确定显示于画布中各立体元素的线点投影信息。
示例性地,可以监听当前显示在画布中的所有立体元素(本实施例具体优选为基于线点构成的立体元素),并从关联存储的线点空间及线点投影信息中,获取画布中各立体元素的线点投影信息。
S202、响应于接收到作用在所述画布中任一线段元素的选定操作,获得选定线段的线点信息。
示例性地,接收到用户对触摸显示屏的触摸点击生成的选定操作,响应该选定操作以确定用户选定的选定线段,并可获得该选定线段的线点信息。
S203、响应于接收到作用于所述选定线段上的移动操作,确定所述待吸附线段对应的移动向量。
示例性地,接收到用户对选定线段的触摸拖拽生成的移动操作,响应该移动操作以确定选定线段的移动向量。
需要说明的是,本实施例下述S204至S209为确定目标立体元素的具体实现步骤。
S204、提取所述线点信息中的点坐标信息和线标示信息,并基于各所述立体元素的线点投影信息,获得各所述立体元素的可视线点投影信息。
在本实施例中,所述选定线段的线点信息以及所显示各立体元素的线点投影信息均为目标立体元素确定的前提信息,本步骤首先从选定线段的线点信息中提取点坐标信息(可以是选定线段的端点坐标信息、选定线段上任一选定点的坐标信息),以及选定线段所属线的线标示信息,所述线标示信息优选通过选定线段两端点的端点坐标来标示。
本步骤进一步从各立体元素的线点投影信息中获取各所述立体元素的可视线点投影信息,所述可视线点投影信息具体可理解为立体元素投影到画布后,用户在交互层面上可实际看到的立体元素的边或点的投影信息。
需要说明的是,三维立体元素到二维画布上进行投影后,其包括了可视的线(边)点和非可视的线(边)点两部分,而本实施例中,线段仅能对可视的线(边)点进行吸附,因此,本实施例基于本步骤从线点投影信息中提取可视线点的可视线点投影信息。需要知道的是,在已知三维立体元素投影方向后,就可以确定立体元素的哪些边和点投影后处于不可见状态,由此本步骤可直接从线点投影信息查找到投影后处于非可视状态的边和点对应的投影信息,从而可以从中提取出可视线点投影信息。
示例性地,图3给出了立体元素投影在画布后的投影示例图。如图3所示,长方体21为在三维场景中构建,通过三维矩阵投影到画布后形成的立体投影元素,且长方体21在三维场景中具体包含了顶点A、B、C、D、A'、B'、C'以及D',且上述各顶点还分别构成了长方体21的各条边,本实施例可以确定上述各顶点的点空间坐标以及投影后关联的点投影坐标,同时也可以获得标示各条边的线三维标示信息以及投影后关联的线投影标示。
可以发现,投影在画布中的长方体21,其顶点A'处于非可视状态,且基于顶点A'构成的边AA'、边A'B'以及边A'D'也处于非可视状态,由此可认为长方体21处于当前状态时,待吸附线段无法下吸附到顶点A'或者边AA、边A'B'以及边A'D'上,基于本实施例上述S204,可以提取出除顶点A'、边AA、边A'B'以及边A'D'外余下7点9边的可视线点投影信息。
S205、根据所述移动向量、所述点坐标信息及各所述可视线点投影信息,确定所述选定线段对应的候选吸附点集合。
基于上述描述,本实施例中目标立体元素的确定分三种不同的吸附情况考虑,而实现三种不同的吸附情况的前提是确定选定线段对应的候选吸附点集合和/或候选吸附线集合。
本步骤具体获得用于目标立体元素确定的候选吸附点集合,所述候选吸附点集合具体可理解为:立体元素上作为选定线段候选吸附点的投影点集合,所述候选吸附点集合中包括了选定线段上待吸附点的点坐标以及与其关联的候选吸附点的点投影坐标。
需要说明的是,执行候选吸附点集合确定的具体情况:选定线段的端点吸附到立体元素顶点的情况,以及选定线段上的点吸附到立体元素边的情况。其中,选定线段上的点吸附到立体元素边的情况,实际可看作选定线段中的点能够吸附在立体元素的边上的点的情况。
具体地,本步骤可以根据选定线段所对应点坐标信息中的端点坐标、移动向量以及各所述可视线点投影信息,结合给定的顶点筛选规则从立体元素的各可视顶点中筛选确定端点的候选吸附点;还可以根据选定线段所对应点坐标信息中的任一选定点的选定点坐标、移动向量以及各可视线点投影信息,结合给定的交点筛选规则从立体元素的各可视边上筛选确定选定点可吸附的候选吸附点。
S206、根据所述移动向量、所述线标示信息及各所述可视线点投影信息中的线投影标示,确定所述选定线段对应的候选吸附线集合。
基于上述描述,本步骤具体获得用于目标立体元素确定的候选吸附线集合,其中,执行候选吸附线集合确定的具体情况:选定线段吸附到立体元素边的情况。所述候选吸附线集合具体可理解为:立体元素上作为选定线段候选吸附线的投影边集合,所述候选吸附线集合中主要包括了选定线段关联的候选吸附线的线投影标示。执行候选吸附线集合确定的具体情况为:选定线段吸附到立体元素边的情况。
S207、确定所述候选吸附线集合是否为空,若否,则执行S208;若是,则执行S209。
在本实施例中,基于上述S205和S206分别获得候选吸附点集合和候选吸附线集合后,需要进一步从候选吸附点集合或候选吸附线集合中选出选定线段待吸附的目标吸附点或目标吸附线。
具体地,本实施例首先考虑采用S208从候选吸附线集合中选取目标吸附线,但如果确定出的候选吸附线集合为空,则可进一步考虑采用S209从候选吸附点集合中选取目标吸附点。
S208、从所述候选吸附线集合中确定所述选定线段的目标吸附线,将包含所述目标吸附线的立体元素作为目标立体元素。
在本实施例中,当候选吸附线集合为非空时,考虑基于本步骤从候选吸附线集合中确定目标吸附线;其中,本实施例考虑采用成本最小化的方式来候选吸附线集合中确定目标吸附线,且将包含目标吸附线的立体元素作为目标立体元素。
本步骤具体可将选定线段到候选吸附线的线吸附距离作为成本最小化的判定标准,由此可确定出到选定线段的线吸附距离最小的候选吸附线来作为目标吸附线。
进一步地,本实施例将从所述候选吸附线集合中确定所述选定线段的目标吸附线,具体优化为:针对所述候选吸附线集合中的每条候选吸附线,确定所述候选吸附线到所述选定线段的线吸附距离;比对各候选吸附线的线吸附距离,将最小吸附距离对应的候选吸附线确定为目标吸附线。
在本实施例中,上述目标吸附线的确定在实现时还存在另外一种方式,即可以先设定一个最小吸附成本的变量,并为该最小吸附成本进行一个设定阈值的赋值;然后,从候选吸附线集合中选取一个候选吸附线,并确定该候选吸附线与选定线段的线吸附距离,如果该线吸附距离小于最小吸附成本的当前赋值,则将该线吸附距离作为最小吸附成本的新的当前赋值,并循环执行候选吸附线的选取及吸附距离判定,直至遍历完候选吸附线集合中的所有候选吸附线,之后确定最小吸附成本的当前赋值对应的候选吸附线并将其作为目标吸附线,如果最小吸附成本最终的当前赋值仍为初始的设定阈值,则选取吸附线距离与该设定阈值之差最小的候选吸附线作为目标吸附线。
本实施例采用成本最小化来进行目标吸附线距离的筛选,能够保证选中线段到筛选出的目标吸附线进行吸附时的吸附效果更好,吸附成本更优。
S209、从所述候选吸附点集合中确定所述选定线段的目标吸附点,并将包含所述目标吸附点的立体元素作为目标立体元素。
在本实施例中,当候选吸附线集合为空时,考虑基于本步骤从候选吸附点集合中确定目标吸附点,其中,本实施例同样考虑采用成本最小化的方式来候选吸附点集合中确定目标吸附点,且将包含目标吸附点的立体元素作为目标立体元素。
本步骤具体可确定选定线段到候选吸附点的点吸附距离;然后还可确定选定线段到候选吸附点的吸附向量,由于成本最小化的判定标准应当由一个参量构成,因此,可基于存在两个已知信息来确定一个参量作为成本最小化的判定标准,本步骤后续可确定出到选定线段的参量值最小的候选吸附点来作为目标吸附点。
进一步地,本实施例将从所述候选吸附点集合中确定所述选定线段的目标吸附点,具体优化为:针对所述候选吸附点集合中每个候选吸附点,确定所述候选吸附点到相应待吸附点的点吸附距离和吸附向量;根据各所述点吸附距离及吸附向量,结合所述移动向量确定所述候选吸附点的判定距离;比对各候选吸附点的判定距离,将最小判定距离对应的候选吸附点确定为目标吸附点。
在本实施例中,基于上述选定线段与候选吸附点的点吸附距离和吸附向量,可以构建一个包含候选吸附点及选定线段上与之关联的端点且以点吸附距离为斜边的直角三角形,本实施例可将直角三角形中由候选吸附点垂直于移动向量形成的直角边作为成本最小化的判定标准,且作为成本最小化的判定标准的直角边相当于候选吸附点与待吸附点的判定距离。其中,待吸附点具体为选定线段上当前所判断候选吸附点关联的端点或选定点。
同样的,上述目标吸附点的确定在实现时也存在另外一种方式,即,也可以先设定一个最小吸附成本的变量,并为该最小吸附成本进行一个设定长度值的赋值;然后,从候选吸附点集合中选取一个候选吸附点,并确定该候选吸附点与选定线段上待吸附点的判定距离,如果该判定距离小于最小吸附成本的当前赋值,则将该判定距离作为最小吸附成本的新的当前赋值,并执行候选吸附点的选取及距离判定,直至遍历完候选吸附点集合中的所有候选吸附点,之后确定最小吸附成本的当前赋值对应的候选吸附点并将其作为目标吸附点,如果最小吸附成本最终的当前赋值仍为初始的设定长度值,则选取判定距离与该设定长度值之差最小的候选吸附点作为目标吸附点。
可以知道是的,本实施例采用成本最小化来进行目标吸附线距离的筛选,能够保证选中线段到筛选出的目标吸附线进行吸附时的吸附效果更好,吸附成本更优。
S210、控制所述选定线段吸附至所述目标立体元素。
需要说明的是,本实施例上述S210基于目标立体元素的确定实现方式不同,可以采用不同的方式来实现,进一步地,当所述目标立体元素通过确定目标吸附点获得时,所述控制所述选定线段吸附至所述目标立体元素,包括:确定所述目标吸附点对应的所述选定线段上的待吸附点;确定所述目标吸附点与相应待吸附点的目标点吸附距离和目标吸附向量;控制所述选定线段沿所述目标吸附向量进行所述目标点吸附距离的偏移,以使所述选定线段上的待吸附点与所述目标立体元素上的目标吸附点相吸附。
可以理解的是,目标吸附点出自于候选吸附点集合,候选吸附点集合中存储了候选吸附点的坐标值以及与之对应的待吸附点的坐标值,由此,可以根据两点的坐标值确定两点的距离本实施例将该距离作为目标吸附点与待吸附点的目标点吸附距离;同时,根据两点的坐标值还可以确定两点形成的坐标向量,该坐标向量可作为目标吸附点与待吸附点的目标吸附向量。之后,本步骤可以控制选定线段沿目标吸附向量进行目标吸附距离的偏移,实现选定线段基于待吸附点与目标立体元素的吸附。
此外,当所述目标立体元素通过确定目标吸附线获得时,所述控制所述选定线段吸附至所述目标立体元素,包括:确定所述目标吸附线到选定线段的目标线吸附距离;将所述选定线段的移动向量确定所述选定线段的吸附移动方向;控制所述选定线段沿所述吸附移动方向进行所述目标线吸附距离的偏移,以使所述选定线段与所述目标立体元素上的目标吸附线相吸附。
上述对目标吸附线的吸附控制过程,能够实现目标吸附线到目标立体元素的动态吸附,保证了线段的智能化吸附。
还可以理解的是,目标吸附线出自候选吸附线集合,候选吸附线集合中存储了标示候选吸附线的线投影标示,可知,目标吸附线与选定线段平行,选定线段到目标吸附线移动时,可将选定线段的移动向量确定所述选定线段的吸附移动方向,此外,本步骤还可以确定出选定线段沿移动向量方向移动时的移动距离,并将该移动距离记为目标吸附线到选定线段的目标线吸附距离。之后,本步骤控制选定线段沿吸附移动方向进行目标线吸附距离的偏移,实现选定线段基于目标吸附线与目标立体元素的吸附。
S211、显示吸附后形成的组合立体元素。
需要说明的是,当选定线段吸附到目标立体元素后,需要进一步对选定线段进行处理,从而让选定线段转换为三维场景的立体线段。进行空间坐标转换后,站在人机交互的角度,用户看到的选定线段在画布中展现的位置仍是二维吸附立体元素后的位置,但在数据表示上,选定线段则已为三维空间的立体几何表示,该种表示方式可理解为一种特殊表示方式,相当于将选定线段从三个层次进行数据表示。
图4给出了选定线段的数据信息进行三层表示的示意图;如图4所示,选定线段的数据信息可以分为三层来表示,第一层201为线段层,线段层可认为是选定线段在目标立体元素上的数据表示,即表示三维场景中的选定线段;第二层202为投影层,投影层表示将选定线段在三维场景下的数据信息投影到画布中对应的数据信息,第三层203为交互层,因为当前的选定线段已经与目标立体元素形成了组合立体元素,但用户期望该选定线段还具备用来线段的交互方式,如点击画布上组合立体元素中的选定线段对该选定线段进行独立操作,所以交互层上对选定线段数据的处理就是让交互的用户感知不到选定线段已经与目标立体元素进行了组合,仍可以对选段线段画布中进行与之前相同的交互。
综上,本步骤对组合立体元素进行显示的关键在于确定三维场景下选定线段的具体数据信息。且可以理解的是,本实施例上述S211基于目标立体元素的确定实现方式不同,同样可以采用不同的方式来实现。
进一步地,当所述目标立体元素通过确定目标吸附点获得时,所述显示吸附后形成的组合立体元素,包括:根据所述目标吸附点的空间坐标信息,确定所述选定线段的第一线点空间信息;将所述第一线点空间信息与所述目标立体元素的线点空间信息相结合,构成包含所述选定线段和目标立体元素的第一组合立体元素;将所述第一组合立体元素投影显示在所述画布中。
示例性地,图5给出了组合立体元素的一种显示示例图,如图5所示,可知,目标立体元素中的顶点C目标吸附点,选定线段中的端点A'为与顶点C关联的待吸附点。可以发现,在三维场景中,端点A'的空间坐标应与顶点C相同,且该种吸附方式中选定线段A'B'上各点在三维场景中的z坐标值相同,均为顶点C的z坐标值,由此,已知三维场景在画布的投影矩阵的前提下,可逆向确定端点B'的空间坐标,进而依据端点A'和端点B'的空间坐标作为选定线段在标示三维场景中第一线点空间信息。
示例性地,图6给出了组合立体元素的另一种显示示例图,如图6所示,可知,目标立体元素中的边CE上存在一个点Q为目标吸附点,选定线段A'B'上存在一个点W为与目标吸附点Q关联的待吸附点。可以发现,在三维场景中,点W的空间坐标与点Q相同,且该种吸附方式中选定线段A'B'上各点在三维场景中的z坐标值依旧相同,均为点Q的z坐标值,由此,已知三维场景在画布的投影矩阵的前提下,可逆向确定选定线段中端点A'和端点B'的空间坐标,进而依据端点A'和端点B'的空间坐标作为选定线段在标示三维场景中第一线点空间信息。
此外,当所述目标立体元素通过确定目标吸附线获得时,所述显示吸附后形成的组合立体元素,包括:根据所述目标吸附线的线点空间信息,确定所述选定线段的第二线点空间信息;将所述第二线点空间信息与所述目标立体元素的线点空间信息相结合,构成包含所述选定线段和目标立体元素的第二组合立体元素;将所述第二组合立体元素投影显示在所述画布中。
本实施例将选定线段和目标立体元素进行组合时,考虑了目标吸附点或目标吸附线所对应不同吸附场景下选定线段的空间化吸附,由此保证了选定线段和目标立体元素进行吸附后在三维空间中的整体性。
示例性地,图7给出了组合立体元素的又一种显示示例图,如图7所示,可知,目标立体元素中的边CE为目标吸附线,选定线段A'B'吸附到了边CE上,由此,确定选定线段A'B'的第二线点空间信息的具体过程可表示为:获取边CE在画布中的点投影坐标以及选定线段的端点A'和端点B'的坐标值;根据上述坐标信息,可以确定画布中线段CA'、线段A'E、线段EB'以及线段CB'的长度值;获取三维场景中边CE与画布之间的夹角为a;基于夹角a以及画布中线段CA'、线段A'E、线段EB'以及线段CB'的长度值,可以确定各线段在三维场景中的线段长度值;在已知边CE的空间坐标、各线段在三维场景中的线段长度值以及三维场景在画布的投影矩阵后,可逆向确定选定线段A'B'的端点A'和端点B'的空间坐标,进而依据端点A'和端点B'的空间坐标作为选定线段在标示三维场景中第二线点空间信息。
S212、接收第一状态调整操作,控制调整所述组合立体元素,并显示状态调整后的组合立体元素。
在本实施例中,用户可以对显示在画布中的组合立体元素进行第一状态调整操作,且所述第一状态调整操作可以作用在所述组合立体元素的目标立体元素上。本步骤接收到该第一状态调整操作时,可以根据第一状态调整操作的具体操作内容,控制调整该组合立体元素的显示状态,所述第一状态调整操作可以是对目标立体元素上的移动操作、旋转操作等,此时,吸附到目标立体元素上的选定线段跟随目标立体元素进行同样的移动或旋转。
S213、接收第二状态调整操作,控制调整所述选定线段,分别显示所述组合立体元素中的选定线段和目标立体元素的当前状态。
在本实施例中,用户还可以对显示在画布中的组合立体元素进行第二状态调整操作,且所述第二状态调整操作作用在所述组合立体元素的选定线段上。本步骤接收到该第二状态调整操作时,可以根据第二状态调整操作的具体操作内容,仅控制调整该组合立体元素上选定线段的显示状态,所述第二状态调整操作可以是对选定线段的移动操作、旋转操作等。
示例性地,假设第二状态调整操作为选定线段的移动操作,则只对选定线段进行移动,则相当于取消了选定线段和目标立体元素的吸附联系,最终将分离显示组合立体元素中的选定线段和目标立体元素。
本发明实施例二提供的一种线段吸附方法,优化了选定线段待吸附立体元素的确定操作,具体可先确定候选吸附点集合或候选吸附线集合,再从候选吸附点集合中确定目标吸附点,或从候选吸附线集合中确定目标吸附线,最终将目标吸附点或目标吸附线归属的立体元素确定为待吸附的目标立体元素。同时还增加对吸附后所形成组合立体元素的状态调整操作。利用该方法,实现了线段到立体元素的智能化吸附,形成了以选定线段和目标立体元素为整体的组合立体元素,且形成的组合立体元素能够在调整目标立体元素状态时附带调整选定线段,避免了重新手动调整线段状态的繁琐操作,提升了教学体验,同时,还能够在调整组合立体元素中的选定线段时,保持所包含的目标立体元素不变,仅控制选定线段的调整,由此既实现了线段随附立体元素的状态调整,又避免了交互层面中线段吸附对用户调控线段状态的影响。
同时,进一步地,图8为本发明实施例二提供的确定候选吸附点集合的实现流程图,如图8所示,本实施例将根据所述移动向量、所述点坐标信息及各所述可视线点投影信息,确定所述选定线段对应的候选吸附点集合,具体化为下述操作:
S2051、获取所述点坐标信息中选定线段两端点的端点坐标及线段上任一选定点的选定点坐标。
可以理解的是,本步骤具体用来获取候选吸附点集合确定所需的选点线段的端点坐标及选定点坐标。其中,所述选定点可以是选定线段上的任一点,可以预先随机选定。
S2052、提取各所述可视线点投影信息中的点投影坐标和线投影标示,分别获得投影点信息集合和第一投影边信息集合。
可以理解的是,本步骤具体用来提取候选吸附点集合确定所需的投影点信息和投影线信息,且本步骤将从各可视线点投影信息提取出的点投影坐标统一添加至投影点信息集合,将从各可视线点投影信息提取出的线投影标示统一添加至投影边信息集合,为便于区分,本步骤记该投影边信息集合为第一投影边信息集合。
需要说明的是,下述S2053和S2055相当于两个并列情况,分别对应了选定线段的端点吸附到立体元素顶点的情况以及选定线段中的点能够吸附在立体元素的边上的点的情况。
S2053、针对所述选定线段的每个端点,执行S2054。
示例性地,本步骤相当于下述S2054的前提步骤,重点在于确定执行对象,所述执行对象实际为选定线段的每个端点。对于选定线段的每个端点,都可以执行下述S2054的操作。
S2054、根据移动向量、端点的端点坐标及投影点信息集合,确定端点待吸附的第一候选投影点,并将端点作为待吸附点以及各第一候选投影点分别作为候选吸附点,关联添加至候选吸附点集合。
在本实施例中,所述移动向量相当于用户拖拽选定线段移动的移动方向,所述端点的端点坐标具体指选定线段初始在画布上的端点坐标,所述投影点信息集合包含了画布中所显示立体元素投影点的点投影坐标,本步骤确定端点待吸附第一候选投影点的过程可描述为:基于端点的端点坐标,以及各投影点的点投影坐标,来确定端点到各投影点的坐标向量和坐标距离,之后,通过坐标向量和移动向量来判定相应投影点是否可以作为该端点的候选投影点,为便于区分,本步骤该候选投影点为第一候选投影点。
此外,确定出端点的第一候选投影点后,需要将该端点作为待吸附点与作为候选吸附点的第一候选投影点关联添加至候选吸附点集合,基于本步骤的操作,该端点在候选吸附点集合中可以关联存在一个或多个第一候选投影点,或者,不存在第一候选投影点。
进一步地,本实施例上述S2054的实现可具体化为:针对所述投影点信息集合中的每个投影点,基于所述端点坐标及所述投影点的点投影坐标,确定所述端点到所述投影点的坐标向量;确定所述坐标向量与所述移动向量的向量夹角值;如果所述向量夹角值的绝对值小于或等于设定夹角阈值,则将所述投影点确定为所述端点待吸附的第一候选投影点。
在本实施例中,基于上述具体化的实现过程,可以确定出端点相对投影点信息集合中每个投影点的坐标向量,并可将该坐标向量与移动向量形成一个向量夹角值,本实施例可通过向量夹角值的绝对值与设定夹角阈值的比对,来确定该投影点是否可作为端点的第一候选投影点。
需要说明的是,本实施例基于上述具体化的实现过程进行第一候选投影点的确定时,考虑了所有的投影点,这种处理方式可能会增加候选投影点确定的执行时间,从而影响整个线段吸附的执行性能。为加快候选投影点的执行时间,本实施例根据选定线段的移动向量和端点坐标,先确定一个有效区域,然后从投影点信息集合中筛选处于有效区域的有效投影点,形成有效投影点集。具体地,确定有效区域并对投影点的筛选可以包括下述至少一种方式:
方式一:确定与所述移动向量垂直的且过当前所选端点的临界直线,将画布以所述临界直线划分成两个平面区域,并将包含所述移动向量的平面区域确定为第一区域。
单考虑以该种方式形成的第一区域作为有效区域进行投影点筛选时,基于投影点信息集合中各投影点的点投影坐标,确定投影点是否位于该有效区域内;如果投影点位于该有效区域内,则将该投影点加入至第一有效投影点集合。
其中,投影点是否位于该有效区域内的判定过程为:确定有效区域位于临界直线的上方还是下方,若为上方,则当投影点处于临界直线上方时,确定投影点处于有效区域,同理,若为下方,则当投影点处于临界直线下方时,确定投影点处于有效区域。
示例性地,图9为对投影点信息集合中投影点进行筛选的一种实现示例图,如图9所示,点A、点B、点C、点D、点E、点F以及点G相当于投影点信息集合中投影点在画布中的显示;其中,点M为显示在画布中的选定线段的一个端点,射线L的延伸方向为选定线段的移动向量,直线L'为与射线L垂直且过点M的临界直线,包含射线L的平面区域22则相当于有效区域。基于上述判定操作,可知只有点A、点B以及点C处于平面区域22中,由此可将点A、点B以及点C添加至第一有效投影点集合。
方式二:以当前选定的端点为圆心,以设定距离阈值为半径画圆,记获得的圆形区域为第二区域。
单考虑以该种方式形成的第二区域作为有效区域进行投影点筛选时,同样基于投影点信息集合中各投影点的点投影坐标,确定投影点是否位于该有效区域内;如果投影点位于该有效区域内,则将该投影点加入至第二有效投影点集合。
其中,投影点是否位于该有效区域内的判定过程为:计算投影点与所选端点的坐标距离的平方,确定坐标距离的平方小于半径平方的投影点处于有效区域中。
示例性地,图10为对投影点信息集合中投影点进行筛选的另一种实现示例图,如图10所示,点A、点B、点C、点D、点E、点F以及点G相当于投影点信息集合中投影点;点M为选定线段的一个端点,圆O形成的封闭区域23相当于有效区域,基于上述判定操作,可知只有点A、点B以及点D处于平面区域23中,由此可将点A、点B以及点D添加至第二有效投影点集合。
可以理解的是,本实施例可以基于上述任一方式对投影点进行筛选,也可以同时结合上述两种方式对投影点进行筛选,其筛选过程中有效区域的确定为:确定上述第一区域和第二区域的相交区域,将相交区域记为有效区域,基于该有效区域进行筛选时,可以先以上述方式一对应的筛选判定方式获得第一有效投影点集合,然后第一有效投影点集合作为待筛选集合,再次进行上述方式二对应的筛选判定方式,从而获得第二有效投影点集合,由此即加快了筛选速度,又进一步减少有效投影点的数量。
S2055、针对所述选定线段上的选定点,执行S2056。
示例性地,本步骤相当于下述S2056的前提步骤,重点在于也在于确定执行对象,所述执行对象实际为选定线段上的一个选定点,对于该选定点,可以执行下述S2056的操作。
S2056、根据移动向量、选定点坐标及第一投影边信息集合,确定选定点在待吸附投影边上对应的第二候选投影点,并将选定点作为待吸附点以及各第二候选投影点分别作为候选吸附点,关联添加至候选吸附点集合。
在本实施例中,基于上述描述,可知所述移动向量相当于用户拖拽选定线段移动的移动方向,所述选定点坐标用来表示选定点,所述第一投影边信息集合包含了画布中所显示立体元素可视投影边的线投影标示,所述线投影标示具体通过构成该投影边的两个投影点的点投影坐标来表示。本步骤确定选定点待吸附的第二候选投影点的过程可描述为:基于选定点坐标,移动向量以及各投影边的线投影标示,来确定选定点的待吸附投影边,之后可以确定待吸附投影边上选定点待吸附的第二候选投影点。
此外,确定出选定点的第二候选投影点后,需要将该选定点作为待吸附点与将作为候选吸附点的第二候选投影点关联添加至候选吸附点集合,基于本步骤的操作,该选定点在候选吸附点集合中可以关联存在一个或多个第二候选投影点,或者,不存在第二候选投影点。
进一步地,本实施例上述S2056的实现可具体化为:基于选定点的选定点坐标及所述移动向量,构建以所述选定点为起始端点、方向与所述移动向量平行的射线,并获得所述射线的射线标示;针对所述第一投影边信息集合中的每个第一投影边,根据所述第一投影边的线投影标示及所述射线标示,确定所述第一投影边是否与所述射线存在第一交点;若存在,则确定所述第一交点与所述选定点的坐标点距离,并当所述坐标点距离小于设定距离阈值时,确定所述第一投影边为所述选定点的待吸附投影边,所述第一交点为所述选定点的第二候选投影点。
在本实施例中,基于上述具体化的实现过程,可以构建以选定点为起始端点的射线,并可以获得该射线的射线标示,所述射线标示具体包括起始端点的坐标以及射线的延伸方向(与移动向量平行)。基于所述射线标示,可以确定该射线所在的直线方程,根据第一投影边的线投影标示,可以确定第一投影边所在的直线方程,由此,基于两直线方程,可以确定射线与第一投影边是否存在第一交点,当存在第一交点,且第一交点与选定点的坐标点距离小于设定距离阈值时,就可认为该第一投影边为选定点的待吸附投影边,并可将存在的第一交点作为选定点的第二候选投影点。
上述S2051至S2056的步骤流程,具体实现了选定线段所对应候选吸附点集合的确定,基于上述步骤,考虑了不同情况下选定线段所对应候选吸附点的确定方式,从而保证了所确定候选吸附点的准确性和有效性,进而提高了后续筛选获得目标吸附点时的筛选准确度。
此外,在本发明实施例二的另一个可选实施例中,图11为本发明实施例二提供的确定候选吸附线集合的实现流程图,如图11所示,本可选实施例将根据所述移动向量、所述线标示信息及各所述可视线点投影信息中的线投影标示,确定所述选定线段对应的候选吸附线集合,具体化为下述操作:
S2061、根据所述移动向量及所述线标示信息,构建用于吸附筛选的平行四边形区域。
在本实施例中,所述移动向量相当于用户拖拽选定线段移动的移动方向,所述线标示信息具体为基于选定线段两端点的端点坐标组成的信息。本步骤在已知选定线段的移动向量和线标示信息后,基于已知信息来确定平行四边形的边长及相邻边的夹角值,从而构建一个平行四边形区域,以用于选定线段可吸附投影边的筛选。
进一步地,本实施例上述S2061的实现可具体化为:根据所述线标示信息中选定线段两端点的端点坐标,确定所述选定线段的线段长度;确定所述选定线段与所述移动向量构成的夹角值;构建以所述线段长度为第一边长,设定的吸附距离阈值为第二边长以及边夹角为所述夹角值或为所述夹角值余角的平行四边形区域。
在本实施例中,将待构建的平行四边形相邻两边分别记为第一边和第二边,且第一边对应的第一边长为选定线段的线段长度,第二边对应的第二边长为设定的吸附距离阈值,边夹角为选定线段与移动向量构成的夹角值或夹角值余角。
示例性地,图12为所构建用于吸附筛选的平行四边形的示例图,如图12所示,在构建形成的平行四边形210中,线段AB作为选定线段,相当于平行四边形210中的第一边的第一边长,线段AC作为设定的吸附距离阈值,相当于平行四边形210中第二边的第二边长,且线段AB与线段AC构成的∠BAC相当于平行四边形中第一边与第二边的边夹角,边夹角∠BAC的角度值可以为选定线段与所述移动向量构成的夹角值。
S2062、根据各所述可视线点投影信息中的线投影标示,形成第二投影边信息集合。
在本实施例中,可视线点投影信息中的线投影标示具体用于标示立体元素在画布中可视的投影边。本步骤可以将可视线点投影信息中的线投影标示添加至第二投影边信息集合中,从而形成了包含画布中所有可视的投影边的投影边信息集合。
S2063、根据所述平行四边形区域,从所述第二投影边信息集合中筛选所述选定线段的候选吸附线。
在本实施例中,对于选段线段到立体元素边的吸附,首先可保证选定线段应当与待吸附的边保持平行,从而使选定线段能够完全贴合立体元素的边进行吸附;此外,由于平行四边形中第二边的边长为吸附距离阈值,本步骤可以该吸附距离阈值设定平行四边形区域的吸附筛选条件,从而从第二投影边信息集合中筛选满足吸附筛选条件的第二投影边,以作为选定线段的候选吸附线。
进一步地,本实施例上述S2063的实现可具体化为:针对所述第二投影边信息集合中的每个第二投影边,根据所述第二投影边的线投影标示及所述线标示信息,确定所述第二投影边是否与所述选定线段平行;若平行,则确定所述第二投影边是否满足基于所述平行四边形区域设定的吸附筛选条件;若满足,则将所述第二投影边确定为所述选定线段的候选吸附线。
本实施例可对第二投影边信息集合中的每个第二投影边进行上述步骤的筛选判定,从而筛选出与选定线段平行的,且满足吸附筛选条件的候选吸附线,其中所述吸附筛选条件的设定具体可用于来判定第二投影边是否处于平行四边形内,或者是否与平行四边形的第二边存在交点,从而来确定第二投影边是否可作为选定线段的候选吸附线。
进一步地,所述吸附筛选条件包括下述至少一项:
第二投影边延长线与作为第二边的第一阈值距离边存在第二交点,且所述第二交点位于所述第二投影边上;第二投影边延长线与作为第二边的第二阈值距离边存在第三交点,且所述第三交点位于所述第二投影边上;第二投影边延长线与作为第二边的第一阈值距离边和第二阈值距离边分别存在第四交点和第五交点,且所述第二投影边处于第四交点和第五交点的连线上。
可以知道的是,所构建的平行四边形区域包括两条第二边,本实施例将其中两条第二边分别记为第一阈值距离边和第二阈值距离边,本实施例给出的吸附筛选条件可以包含上述至少一项,即当已经过平行筛选的第二投影边满足上述至少一条时,就可认为该第二投影边为选定线段的候选吸附线。
示例性地,图13~图15分别给出了所设定吸附筛选条件的一种效果展示图,其中,在图13至图15中,所示的线段AC为平行四边形其中的一条第二边,具体相当于第一阈值距离边;线段BD为另一条第二边,具体相当于第二阈值距离边;且可将线段EF记为第二投影边。如图13所示,主要给出了上述第一种吸附筛选方式的效果展示,即,第二投影边EF形成延长线与线段AC相交,且交点处于第二投影边EF上;如图14所示,主要给出了上述第二种吸附筛选方式的效果展示,即,第二投影边EF形成的延长线与线段BD相交,且交点处于第二投影边EF上;如图15所示,主要给出了上述第三种吸附筛选方式的效果展示,即,第二投影边EF形成的延长线分别与线段AC和线段BD相交,且第二投影边EF处于两交点的连线上。
S2064、获得包含所述选定线段各所述候选吸附线的候选吸附线集合。
本步骤可将基于上述S2063确定出的候选吸附线均添加到候选吸附线集合中。
上述S2061至S2064的步骤流程,具体实现了选定线段所对应候选吸附线集合的确定,基于上述步骤,实现了立体元素中与选定线段所平行投影线的有效筛选,从而保证了所确定候选吸附线的准确性和有效性,进而提高了后续筛选获得目标吸附线时的筛选准确度。
实施例三
图16为本发明实施例三提供的一种线段吸附装置的结构框图,本实施例提供的线段吸附装置集成在线段吸附设备中,一般地,线段吸附设备可以是电脑,手机,平板或交互智能平板等。如图16所示,该装置包括:第一确定模块31、第一响应模块32、第二响应模块33、第二确定模块34、吸附控制模块35以及组合显示模块36。
其中,第一确定模块31,用于确定显示于画布中各立体元素的线点投影信息。
第一响应模块32,用于响应于接收到作用在所述画布中任一线段元素的选定操作,获得选定线段的线点信息。
第二响应模块33,用于响应于接收到作用于所述选定线段上的移动操作,确定所述待吸附线段对应的移动向量。
第二确定模块34,用于按照所述线点信息、移动向量、各所述立体元素的线点投影信息,确定所述选定线段待吸附的目标立体元素。
吸附控制模块35,用于控制所述选定线段吸附至所述目标立体元素。
组合显示模块36,用于显示吸附后形成的组合立体元素。
本实施例的上述技术方案,能够根据选定线段的线点信息及移动向量,结合画布中各立体元素的线点投影信息,从各立体元素中确定可吸附的目标立体元素并吸附,由此实现了线段到立体元素的智能化吸附,形成了以选定线段和目标立体元素为整体的组合立体元素,从而能够在调整组合立体元素中目标立体元素的状态时附带调整所吸附线段的状态,避免了重新手动调整线段状态的繁琐操作,提升了教学体验。
在上述实施例的基础上,所述第二确定模块,包括:
信息获取单元,用于提取所述线点信息中的点坐标信息和线标示信息,并基于各所述立体元素的线点投影信息,获得各所述立体元素的可视线点投影信息;
候选点确定单元,用于根据所述移动向量、所述点坐标信息及各所述可视线点投影信息,确定所述选定线段对应的候选吸附点集合;
候选线确定单元,用于根据所述移动向量、所述线标示信息及各所述可视线点投影信息中的线投影标示,确定所述选定线段对应的候选吸附线集合;
吸附目标确定单元,用于当所述候选吸附线集合为非空时,从所述候选吸附线集合中确定所述选定线段的目标吸附线,将包含所述目标吸附线的立体元素作为目标立体元素;否则,从所述候选吸附点集合中确定所述选定线段的目标吸附点,并将包含所述目标吸附点的立体元素作为目标立体元素。
在上述实施例的基础上,所述候选点确定单元,包括:
第一获取子单元,用于获取所述点坐标信息中选定线段两端点的端点坐标及线段上任一选定点的选定点坐标;
第二获取子单元,用于提取各所述可视线点投影信息中的点投影坐标和线投影标示,分别获得投影点信息集合和第一投影边信息集合;
第一点确定子单元,用于针对所述选定线段的每个端点,根据所述移动向量、所述端点的端点坐标及所述投影点信息集合,确定所述端点待吸附的第一候选投影点,并将所述端点作为待吸附点以及各所述第一候选投影点分别作为候选吸附点,关联添加至所述候选吸附点集合;
第二点确定子单元,用于根据所述移动向量、选定点坐标及所述第一投影边信息集合,确定所述选定点在待吸附投影边上对应的第二候选投影点,并将所述选定点作为待吸附点以及各所述第二候选投影点分别作为候选吸附点,关联添加至所述候选吸附点集合。
在上述实施例的基础上,所述第一点确定子单元,具体用于:
针对所述投影点信息集合中的每个投影点,针对所述选定线段的每个端点,基于所述端点坐标及所述投影点的点投影坐标,确定所述端点到所述投影点的坐标向量;
确定所述坐标向量与所述移动向量的向量夹角值;
如果所述向量夹角值的绝对值小于或等于设定夹角阈值,则将所述投影点确定为所述端点待吸附的第一候选投影点;
将所述端点作为待吸附点以及各所述第一候选投影点分别作为候选吸附点,关联添加至所述候选吸附点集合。
进一步地,所述第一点确定子单元,具体用于:
基于所述移动向量及所述端点的端点坐标,确定所述画布中的有效区域;
从所述投影点信息集合中筛选处于所述有效区域的有效投影点,形成有效投影点集合;
针对所述有效投影点集合中的每个有效投影点,基于所述端点坐标及所述有效投影点的点投影坐标,确定所述端点到所述有效投影点的有效坐标向量;
确定所述有效坐标向量与所述移动向量的有效向量夹角值;
如果所述有效向量夹角值的绝对值小于或等于设定夹角阈值,则将所述有效投影点确定为所述端点待吸附的第一候选投影点;
将所述端点作为待吸附点以及各所述第一候选投影点分别作为候选吸附点,关联添加至所述候选吸附点集合。
进一步地,所述基于所述移动向量及所述端点的端点坐标,确定所述画布中的有效区域,包括:
通过与所述移动向量垂直且过所述端点的临界直线,将所述画布划分成两个平面区域,并将包含所述移动向量的平面区域确定为第一区域;
将所述画布中以所述端点为圆心,以设定距离阈值为半径形成的圆形区域确定为第二区域;
将所述第一区域与所述第二区域的相交区域确定为有效区域;或者,将所述第一区域确定为有效区域;或者,将第二区域确定为有效区域。
在上述实施例的基础上,所述第二点确定子单元,具体用于:
基于选定点的选定点坐标及所述移动向量,构建以所述选定点为起始端点、方向与所述移动向量平行的射线,并获得所述射线的射线标示;
针对所述第一投影边信息集合中的每个第一投影边,根据所述第一投影边的线投影标示及所述射线标示,确定所述第一投影边是否与所述射线存在第一交点;
若存在,则确定所述第一交点与所述选定点的坐标点距离,并当所述坐标点距离小于设定距离阈值时,确定所述第一投影边为所述选定点的待吸附投影边,所述第一交点为所述选定点的第二候选投影点;
将所述选定点作为待吸附点以及各所述第二候选投影点分别作为候选吸附点,关联添加至所述候选吸附点集合。
在上述实施例的基础上,所述从所述候选吸附点集合中确定所述选定线段的目标吸附点,包括:
针对所述候选吸附点集合中每个候选吸附点,确定所述候选吸附点到相应待吸附点的点吸附距离和吸附向量;
根据各所述点吸附距离及吸附向量,结合所述移动向量确定所述候选吸附点的判定距离;
比对各候选吸附点的判定距离,将最小判定距离对应的候选吸附点确定为目标吸附点。
在上述实施例的基础上,所述候选线确定单元,包括:
区域确定子单元,用于根据所述移动向量及所述线标示信息,构建用于吸附筛选的平行四边形区域;
信息筛选子单元,用于根据各所述可视线点投影信息中的线投影标示,形成第二投影边信息集合;
线确定子单元,用于根据所述平行四边形区域,从所述第二投影边信息集合中筛选所述选定线段的候选吸附线;
集合确定子单元,用于获得包含所述选定线段各所述候选吸附线的候选吸附线集合。
在上述实施例的基础上,所述区域确定子单元,具体用于:
根据所述线标示信息中选定线段两端点的端点坐标,确定所述选定线段的线段长度;
确定所述选定线段与所述移动向量构成的夹角值;
构建以所述线段长度为第一边长,设定的吸附距离阈值为第二边长以及边夹角为所述夹角值或为所述夹角值余角的平行四边形区域。
在上述实施例的基础上,所述线确定子单元,具体用于:
针对所述第二投影边信息集合中的每个第二投影边,根据所述第二投影边的线投影标示及所述线标示信息,确定所述第二投影边是否与所述选定线段平行;
若平行,则确定所述第二投影边是否满足基于所述平行四边形区域设定的吸附筛选条件;
若满足,则将所述第二投影边确定为所述选定线段的候选吸附线。
在上述实施例的基础上,所述吸附筛选条件包括下述至少一项:
第二投影边延长线与作为第二边的第一阈值距离边存在第二交点,且所述第二交点位于所述第二投影边上;
第二投影边延长线与作为第二边的第二阈值距离边存在第三交点,且所述第三交点位于所述第二投影边上;
第二投影边延长线与作为第二边的第一阈值距离边和第二阈值距离边分别存在第四交点和第五交点,且所述第二投影边处于第四交点和第五交点的连线上。
在上述实施例的基础上,所述从所述候选吸附线集合中确定所述选定线段的目标吸附线,包括:
针对所述候选吸附线集合中的每条候选吸附线,确定所述候选吸附线到所述选定线段的线吸附距离;
比对各候选目标线的线吸附距离,将最小吸附距离对应的候选目标线确定为目标吸附线。
在上述实施例的基础上,当所述目标立体元素通过确定目标吸附点获得时,所述吸附控制模块,具体用于:
确定所述目标吸附点对应的所述选定线段上的待吸附点;
确定所述目标吸附点与相应待吸附点的目标点吸附距离和目标吸附向量;
控制所述选定线段沿所述目标吸附向量进行所述目标点吸附距离的偏移,以使所述选定线段上的待吸附点与所述目标立体元素上的目标吸附点相吸附。
在上述实施例的基础上,当所述目标立体元素通过确定目标吸附线获得时,所述吸附控制模块,具体用于:
确定所述目标吸附线到选定线段的目标线吸附距离;
将所述选定线段的移动向量确定所述选定线段的吸附移动方向;
控制所述选定线段沿所述吸附移动方向进行所述目标线吸附距离的偏移,以使所述选定线段与所述目标立体元素上的目标吸附线相吸附。
在上述实施例的基础上,当所述目标立体元素通过确定目标吸附点获得时,所述组合显示模块,具体用于:
根据所述目标吸附点的空间坐标信息,确定所述选定线段的第一线点空间信息;
将所述第一线点空间信息与所述目标立体元素的线点空间信息相结合,构成包含所述选定线段和目标立体元素的第一组合立体元素;
将所述第一组合立体元素投影显示在所述画布中。
在上述实施例的基础上,当所述目标立体元素通过确定目标吸附线获得时,所述组合显示模块,具体用于:
根据所述目标吸附线的线点空间信息,确定所述选定线段的第二线点空间信息;
将所述第二线点空间信息与所述目标立体元素的线点空间信息相结合,构成包含所述选定线段和目标立体元素的第二组合立体元素;
将所述第二组合立体元素投影显示在所述画布中。
进一步地,该装置还包括:第一接收模块,用于在显示吸附后形成的组合立体元素之后,接收第一状态调整操作,所述第一状态调整操作作用在所述组合立体元素的目标立体元素上;
第一显示模块,用于控制调整所述组合立体元素,并显示状态调整后的组合立体元素。
进一步地,该装置还包括:
第二接收模块,用于在显示吸附后形成的组合立体元素之后,接收第二状态调整操作,所述第二状态调整操作作用在所述组合立体元素的选定线段上;
第二显示模块,用于控制调整所述选定线段,分别显示所述组合立体元素中的选定线段和目标立体元素的当前状态。
本实施例提供的一种线段吸附装置可以用于执行上述任意实施例提供的线段吸附方法,具备相应的功能和有益效果。
实施例四
图17为本发明实施例四提供的一种线段吸附设备的结构示意图。该线段吸附设备包括:处理器40、存储器41、显示屏42、输入装置43以及输出装置44。该线段吸附设备中处理器40的数量可以是一个或者多个,图17中以一个处理器40为例。该线段吸附设备中存储器41的数量可以是一个或者多个,图17中以一个存储器41为例。该线段吸附设备的处理器40、存储器41、显示屏42、输入装置43以及输出装置44可以通过总线或者其他方式连接,图17中以通过总线连接为例。实施例中,线段吸附设备可以是电脑,手机,平板或交互智能平板等。
存储器41作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明任意实施例所述的线段吸附设备对应的程序指令/模块(例如,线段吸附装置中的第一确定模块31、第一响应模块32、第二响应模块33、第二确定模块34、吸附控制模块35以及组合显示模块36)。存储器41可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器41可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器41可进一步包括相对于处理器40远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
显示屏42可以为具有触摸功能的显示屏42,其可以是电容屏、电磁屏或者红外屏。一般而言,显示屏42用于根据处理器40的指示显示数据,例如显示投影在画布中的立体元素、平面元素以及除元素外的其他元素等,还用于接收作用于显示屏42的触摸操作,并将相应的信号发送至处理器40或其他装置。
输入装置43可用于接收输入的数字或者字符信息,以及产生与展示设备的用户设置以及功能控制有关的键信号输入,还可以是用于获取图像的摄像头以及获取音频数据的拾音设备。输出装置44可以包括扬声器等音频设备。需要说明的是,输入装置43和输出装置44的具体组成可以根据实际情况设定。
处理器40通过运行存储在存储器41中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的线段吸附方法。
上述提供的线段吸附设备可用于执行上述任意实施例提供的线段吸附方法,具备相应的功能和有益效果。
实施例五
本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种线段吸附方法,包括:
确定显示于画布中各立体元素的线点投影信息;响应于接收到作用在所述画布中任一线段元素的选定操作,获得选定线段的线点信息;响应于接收到作用于所述选定线段上的移动操作,确定所述待吸附线段对应的移动向量;按照所述线点信息、移动向量、各所述立体元素的线点投影信息,确定所述选定线段待吸附的目标立体元素;控制所述选定线段吸附至所述目标立体元素;显示吸附后形成的组合立体元素。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述线段吸附方法的操作,还可以执行本发明任意实施例所提供的线段吸附方法中的相关操作,且具备相应的功能和有益效果。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是机器人,个人计算机,服务器,或者网络设备等)执行本发明任意实施例所述的线段吸附方法。
值得注意的是,上述线段吸附装置中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (21)
1.一种线段吸附方法,其特征在于,包括:
确定显示于画布中各立体元素的线点投影信息;
响应于接收到作用在所述画布中任一线段元素的选定操作,获得选定线段的线点信息;
响应于接收到作用于所述选定线段上的移动操作,确定所述选定线段对应的移动向量;
提取所述线点信息中的点坐标信息和线标示信息,并基于各所述立体元素的线点投影信息,获得各所述立体元素的可视线点投影信息;
根据所述移动向量、所述点坐标信息及各所述可视线点投影信息,确定所述选定线段对应的候选吸附点集合;
根据所述移动向量、所述线标示信息及各所述可视线点投影信息中的线投影标示,确定所述选定线段对应的候选吸附线集合;
如果所述候选吸附线集合为非空,则从所述候选吸附线集合中确定所述选定线段的目标吸附线,将包含所述目标吸附线的立体元素作为目标立体元素;否则,
从所述候选吸附点集合中确定所述选定线段的目标吸附点,并将包含所述目标吸附点的立体元素作为目标立体元素;
控制所述选定线段吸附至所述目标立体元素;
显示吸附后形成的组合立体元素。
2.根据权利要求1所述的方法,其特征在于,所述根据所述移动向量、所述点坐标信息及各所述可视线点投影信息,确定所述选定线段对应的候选吸附点集合,包括:
获取所述点坐标信息中选定线段两端点的端点坐标及线段上选定点的选定点坐标;
提取各所述可视线点投影信息中的点投影坐标和线投影标示,分别获得投影点信息集合和第一投影边信息集合;
针对所述选定线段的每个端点,根据所述移动向量、所述端点的端点坐标及所述投影点信息集合,确定所述端点待吸附的第一候选投影点,并将所述端点作为待吸附点以及各所述第一候选投影点分别作为候选吸附点,关联添加至所述候选吸附点集合;
根据所述移动向量、选定点坐标及所述第一投影边信息集合,确定所述选定点在待吸附投影边上对应的第二候选投影点,并将所述选定点作为待吸附点以及各所述第二候选投影点分别作为候选吸附点,关联添加至所述候选吸附点集合。
3.根据权利要求2所述的方法,其特征在于,所述根据所述移动向量、所述端点的端点坐标及所述投影点信息集合,确定所述端点待吸附的第一候选投影点,包括:
针对所述投影点信息集合中的每个投影点,基于所述端点坐标及所述投影点的点投影坐标,确定所述端点到所述投影点的坐标向量;
确定所述坐标向量与所述移动向量的向量夹角值;
如果所述向量夹角值的绝对值小于或等于设定夹角阈值,则将所述投影点确定为所述端点待吸附的第一候选投影点。
4.根据权利要求2所述的方法,其特征在于,所述根据所述移动向量、所述端点的端点坐标及所述投影点信息集合,确定所述端点待吸附的第一候选投影点,包括:
基于所述移动向量及所述端点的端点坐标,确定所述画布中的有效区域;
从所述投影点信息集合中筛选处于所述有效区域的有效投影点,形成有效投影点集合;
针对所述有效投影点集合中的每个有效投影点,基于所述端点坐标及所述有效投影点的点投影坐标,确定所述端点到所述有效投影点的有效坐标向量;
确定所述有效坐标向量与所述移动向量的有效向量夹角值;
如果所述有效向量夹角值的绝对值小于或等于设定夹角阈值,则将所述有效投影点确定为所述端点待吸附的第一候选投影点。
5.根据权利要求4所述的方法,其特征在于,所述基于所述移动向量及所述端点的端点坐标,确定所述画布中的有效区域,包括:
通过与所述移动向量垂直且过所述端点的临界直线,将所述画布划分成两个平面区域,并将包含所述移动向量的平面区域确定为第一区域;
将所述画布中以所述端点为圆心,以设定距离阈值为半径形成的圆形区域确定为第二区域;
将所述第一区域与所述第二区域的相交区域确定为有效区域;或者,将所述第一区域确定为有效区域;或者,将第二区域确定为有效区域。
6.根据权利要求2所述的方法,其特征在于,所述根据所述移动向量、选定点坐标及所述第一投影边信息集合,确定所述选定点在待吸附投影边上对应的第二候选投影点,包括:
基于选定点的选定点坐标及所述移动向量,构建以所述选定点为起始端点、方向与所述移动向量平行的射线,并获得所述射线的射线标示;
针对所述第一投影边信息集合中的每个第一投影边,根据所述第一投影边的线投影标示及所述射线标示,确定所述第一投影边是否与所述射线存在第一交点;
若存在,则确定所述第一交点与所述选定点的坐标点距离,并当所述坐标点距离小于设定距离阈值时,确定所述第一投影边为所述选定点的待吸附投影边,所述第一交点为所述选定点的第二候选投影点。
7.根据权利要求2所述的方法,其特征在于,所述从所述候选吸附点集合中确定所述选定线段的目标吸附点,包括:
针对所述候选吸附点集合中每个候选吸附点,确定所述候选吸附点到相应待吸附点的点吸附距离和吸附向量;
根据各所述点吸附距离及吸附向量,结合所述移动向量确定所述候选吸附点的判定距离;
比对各候选吸附点的判定距离,将最小判定距离对应的候选吸附点确定为目标吸附点。
8.根据权利要求1所述的方法,其特征在于,所述根据所述移动向量、所述线标示信息及各所述可视线点投影信息中的线投影标示,确定所述选定线段对应的候选吸附线集合,包括:
根据所述移动向量及所述线标示信息,构建用于吸附筛选的平行四边形区域;
根据各所述可视线点投影信息中的线投影标示,形成第二投影边信息集合;
根据所述平行四边形区域,从所述第二投影边信息集合中筛选所述选定线段的候选吸附线;
获得包含所述选定线段各所述候选吸附线的候选吸附线集合。
9.根据权利要求8所述的方法,其特征在于,所述根据所述移动向量及所述线标示信息,构建用于吸附筛选的平行四边形区域,包括:
根据所述线标示信息中选定线段两端点的端点坐标,确定所述选定线段的线段长度;
确定所述选定线段与所述移动向量构成的夹角值;
构建以所述线段长度为第一边长,设定的吸附距离阈值为第二边长以及边夹角为所述夹角值或为所述夹角值余角的平行四边形区域。
10.根据权利要求9所述的方法,其特征在于,所述根据所述平行四边形区域,从所述第二投影边信息集合中筛选所述选定线段的候选吸附线,包括:
针对所述第二投影边信息集合中的每个第二投影边,根据所述第二投影边的线投影标示及所述线标示信息,确定所述第二投影边是否与所述选定线段平行;
若平行,则确定所述第二投影边是否满足基于所述平行四边形区域设定的吸附筛选条件;
若满足,则将所述第二投影边确定为所述选定线段的候选吸附线。
11.根据权利要求10所述的方法,其特征在于,所述吸附筛选条件包括下述至少一项:
第二投影边延长线与作为第二边的第一阈值距离边存在第二交点,且所述第二交点位于所述第二投影边上;
第二投影边延长线与作为第二边的第二阈值距离边存在第三交点,且所述第三交点位于所述第二投影边上;
第二投影边延长线与作为第二边的第一阈值距离边和第二阈值距离边分别存在第四交点和第五交点,且所述第二投影边处于第四交点和第五交点的连线上。
12.根据权利要求8所述的方法,其特征在于,所述从所述候选吸附线集合中确定所述选定线段的目标吸附线,包括:
针对所述候选吸附线集合中的每条候选吸附线,确定所述候选吸附线到所述选定线段的线吸附距离;
比对各候选目标线的线吸附距离,将最小吸附距离对应的候选目标线确定为目标吸附线。
13.根据权利要求1所述的方法,其特征在于,当所述目标立体元素通过确定目标吸附点获得时,所述控制所述选定线段吸附至所述目标立体元素,包括:
确定所述目标吸附点对应的所述选定线段上的待吸附点;
确定所述目标吸附点与相应待吸附点的目标点吸附距离和目标吸附向量;
控制所述选定线段沿所述目标吸附向量进行所述目标点吸附距离的偏移,以使所述选定线段上的待吸附点与所述目标立体元素上的目标吸附点相吸附。
14.根据权利要求1所述的方法,其特征在于,当所述目标立体元素通过确定目标吸附线获得时,所述控制所述选定线段吸附至所述目标立体元素,包括:
确定所述目标吸附线到选定线段的目标线吸附距离;
将所述选定线段的移动向量确定所述选定线段的吸附移动方向;
控制所述选定线段沿所述吸附移动方向进行所述目标线吸附距离的偏移,以使所述选定线段与所述目标立体元素上的目标吸附线相吸附。
15.根据权利要求1所述的方法,其特征在于,当所述目标立体元素通过确定目标吸附点获得时,所述显示吸附后形成的组合立体元素,包括:
根据所述目标吸附点的空间坐标信息,确定所述选定线段的第一线点空间信息;
将所述第一线点空间信息与所述目标立体元素的线点空间信息相结合,构成包含所述选定线段和目标立体元素的第一组合立体元素;
将所述第一组合立体元素投影显示在所述画布中。
16.根据权利要求1所述的方法,其特征在于,当所述目标立体元素通过确定目标吸附线获得时,所述显示吸附后形成的组合立体元素,包括:
根据所述目标吸附线的线点空间信息,确定所述选定线段的第二线点空间信息;
将所述第二线点空间信息与所述目标立体元素的线点空间信息相结合,构成包含所述选定线段和目标立体元素的第二组合立体元素;
将所述第二组合立体元素投影显示在所述画布中。
17.根据权利要求1-16任一项所述的方法,其特征在于,在显示吸附后形成的组合立体元素之后,还包括:
接收第一状态调整操作,所述第一状态调整操作作用在所述组合立体元素的目标立体元素上;
控制调整所述组合立体元素,并显示状态调整后的组合立体元素。
18.根据权利要求1-16任一项所述的方法,其特征在于,在显示吸附后形成的组合立体元素之后,还包括:
接收第二状态调整操作,所述第二状态调整操作作用在所述组合立体元素的选定线段上;
控制调整所述选定线段,分别显示所述组合立体元素中的选定线段和目标立体元素的当前状态。
19.一种线段吸附装置,其特征在于,包括:
第一确定模块,用于确定显示于画布中各立体元素的线点投影信息;
第一响应模块,用于响应于接收到作用在所述画布中任一线段元素的选定操作,获得选定线段的线点信息;
第二响应模块,用于响应于接收到作用于所述选定线段上的移动操作,确定所述选定线段对应的移动向量;
第二确定模块,用于按照所述线点信息、移动向量、各所述立体元素的线点投影信息,确定所述选定线段待吸附的目标立体元素;
所述第二确定模块,包括:信息获取单元、候选点确定单元、候选线确定单元和吸附目标确定单元;
信息获取单元,用于提取所述线点信息中的点坐标信息和线标示信息,并基于各所述立体元素的线点投影信息,获得各所述立体元素的可视线点投影信息;
候选点确定单元,用于根据所述移动向量、所述点坐标信息及各所述可视线点投影信息,确定所述选定线段对应的候选吸附点集合;
候选线确定单元,用于根据所述移动向量、所述线标示信息及各所述可视线点投影信息中的线投影标示,确定所述选定线段对应的候选吸附线集合;
吸附目标确定单元,用于当所述候选吸附线集合为非空时,从所述候选吸附线集合中确定所述选定线段的目标吸附线,将包含所述目标吸附线的立体元素作为目标立体元素;否则,从所述候选吸附点集合中确定所述选定线段的目标吸附点,并将包含所述目标吸附点的立体元素作为目标立体元素;
吸附控制模块,用于控制所述选定线段吸附至所述目标立体元素;
组合显示模块,用于显示吸附后形成的组合立体元素。
20.一种线段吸附设备,其特征在于,包括:
存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6任一所述的线段吸附方法。
21.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-6任一所述的线段吸附方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910272405.3A CN109979020B (zh) | 2019-04-04 | 2019-04-04 | 一种线段吸附方法、装置、设备及存储介质 |
PCT/CN2019/120855 WO2020199616A1 (zh) | 2019-04-04 | 2019-11-26 | 线段吸附方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910272405.3A CN109979020B (zh) | 2019-04-04 | 2019-04-04 | 一种线段吸附方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109979020A CN109979020A (zh) | 2019-07-05 |
CN109979020B true CN109979020B (zh) | 2020-12-22 |
Family
ID=67083065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910272405.3A Active CN109979020B (zh) | 2019-04-04 | 2019-04-04 | 一种线段吸附方法、装置、设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109979020B (zh) |
WO (1) | WO2020199616A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109979020B (zh) * | 2019-04-04 | 2020-12-22 | 广州视源电子科技股份有限公司 | 一种线段吸附方法、装置、设备及存储介质 |
CN111104036B (zh) * | 2019-11-21 | 2022-04-05 | 广州视源电子科技股份有限公司 | 元素控制方法、装置、设备及存储介质 |
CN112764654B (zh) * | 2021-01-29 | 2022-10-25 | 北京达佳互联信息技术有限公司 | 组件的吸附操作方法、装置、终端及存储介质 |
CN113031899B (zh) * | 2021-05-28 | 2021-08-27 | 卡莱特云科技股份有限公司 | 一种显示区域的处理方法及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103400387B (zh) * | 2013-08-06 | 2018-10-09 | 上海合合信息科技发展有限公司 | 在图像中线段吸附的方法及装置,构造多边形的方法及装置 |
CN103399696B (zh) * | 2013-08-16 | 2018-10-09 | 上海合合信息科技发展有限公司 | 直线/线段吸附的方法及装置,构造多边形的方法及装置 |
JP2017004305A (ja) * | 2015-06-11 | 2017-01-05 | 株式会社日立製作所 | 解析モデル作成支援システム、解析モデル作成支援装置及び解析モデル作成支援プログラム |
CN105787926B (zh) * | 2016-02-04 | 2018-07-27 | 上海爱福窝云技术有限公司 | 一种图形自动对齐的方法及装置 |
CN107798715B (zh) * | 2017-10-19 | 2020-12-29 | 广州视睿电子科技有限公司 | 立体图形的对齐吸附方法、装置、计算机设备及存储介质 |
CN109191547B (zh) * | 2018-08-20 | 2023-06-02 | 广州视源电子科技股份有限公司 | 元素吸附方法、装置、设备和存储介质 |
CN109979020B (zh) * | 2019-04-04 | 2020-12-22 | 广州视源电子科技股份有限公司 | 一种线段吸附方法、装置、设备及存储介质 |
-
2019
- 2019-04-04 CN CN201910272405.3A patent/CN109979020B/zh active Active
- 2019-11-26 WO PCT/CN2019/120855 patent/WO2020199616A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2020199616A1 (zh) | 2020-10-08 |
CN109979020A (zh) | 2019-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109979020B (zh) | 一种线段吸附方法、装置、设备及存储介质 | |
CN110069204B (zh) | 基于书写轨迹的图形处理方法、装置、设备及存储介质 | |
US10812780B2 (en) | Image processing method and device | |
CN107798715B (zh) | 立体图形的对齐吸附方法、装置、计算机设备及存储介质 | |
US9436369B2 (en) | Touch interface for precise rotation of an object | |
US9489040B2 (en) | Interactive input system having a 3D input space | |
CN110162236B (zh) | 虚拟样板间的展示方法、装置及计算机设备 | |
US20140176607A1 (en) | Simulation system for mixed reality content | |
EP2701152A1 (en) | Collaborative 3D video object browsing, editing and augmented reality rendering on a mobile | |
US9110512B2 (en) | Interactive input system having a 3D input space | |
EP3533218B1 (en) | Simulating depth of field | |
CN103426202A (zh) | 三维全景互动移动终端展示系统及展示方法 | |
JP2014524612A (ja) | アプリケーション間でのオブジェクトのドラッグおよびドロップ | |
CN109191547B (zh) | 元素吸附方法、装置、设备和存储介质 | |
JP7392105B2 (ja) | 没入型ビデオコンテンツをフォービエイテッドメッシュを用いてレンダリングするための方法、システム、および媒体 | |
US20200357177A1 (en) | Apparatus and method for generating point cloud data | |
CN110209325A (zh) | 一种3d场景显示控制方法、系统及设备 | |
CN111757162A (zh) | 一种高清视频播放方法、装置、设备及存储介质 | |
KR101214612B1 (ko) | 증강현실 기반 건물 네비게이션 시스템 | |
CN117152389A (zh) | 三维虚拟环境中导航辅助的方法与系统 | |
CN111757161A (zh) | 一种高清视频播放内容切换方法、装置、设备及存储介质 | |
KR20210083016A (ko) | 전자 장치 및 그의 제어 방법 | |
CN104777999B (zh) | 触摸位置显示方法及触摸位置显示系统 | |
CN111045586B (zh) | 基于三维场景的界面切换方法、车机设备及车辆 | |
CN104820584B (zh) | 一种面向层次化信息自然操控的3d手势界面的构建方法及系统 |
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 |