利索能及
我要发布
收藏
专利号: 2016104651621
申请人: 东软集团股份有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2025-03-03
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种SVG图形碰撞检测方法,其特征在于,所述方法包括:

在第一SVG图形上获取第一检测点集合,所述第一检测点集合用于形成内接于所述第一SVG图形中的第一多边形;

在第二SVG图形上获取第二检测点集合,所述第二检测点集合用于形成内接于所述第二SVG图形中的第二多边形;

判断所述第一检测点集合中是否包括落入到所述第二多边形的范围内的检测点;

在确定所述第一检测点集合中包括落入到所述第二多边形的范围内的检测点时,确定所述第一SVG图形与所述第二SVG图形之间发生碰撞;

其中,所述判断所述第一检测点集合中是否包括落入到所述第二多边形的范围内的检测点的步骤包括:遍历所述第一检测点集合,判断是否存在满足第一预设条件的第一检测点,其中,所述第一预设条件为:所述第一检测点所在的水平线在该第一检测点的左侧与所述第二多边形的交点的总数为奇数,且在该第一检测点的右侧与所述第二多边形的交点的总数为奇数;

当所述第一检测点集合中存在满足所述第一预设条件的第一检测点时,确定所述第一检测点集合中包括落入到所述第二多边形的范围内的检测点。

2.根据权利要求1所述的方法,其特征在于,所述在第一SVG图形上获取第一检测点集合的步骤包括:在所述第一SVG图形上获取第一初始位置点;

以所述第一初始位置点为起点、按照第一预设步长、沿所述第一SVG图形获取多个第一中间位置点;

基于所述第一初始位置点和所述多个第一中间位置点,形成所述第一检测点集合;

所述在第二SVG图形上获取第二检测点集合的步骤包括;

在所述第二SVG图形上获取第二初始位置点;

以所述第二初始位置点为起点、按照第二预设步长、沿所述第二SVG图形获取多个第二中间位置点;

基于所述第二初始位置点和所述多个第二中间位置点,形成所述第二检测点集合。

3.根据权利要求1所述的方法,其特征在于,所述第一检测点所在的水平线在该第一检测点的左侧与所述第二多边形的交点的总数为:所述第二多边形中位于所述第一检测点所在的垂直线的左侧、且位于所述第一检测点所在的水平线的下方的部分与该水平线的交点的总数;以及所述第一检测点所在的水平线在该第一检测点的右侧与所述第二多边形的交点的总数为:所述第二多边形中位于所述第一检测点所在的垂直线的右侧、且位于所述第一检测点所在的水平线的下方的部分与该水平线的交点的总数。

4.根据权利要求1-3中任一项所述的方法,其特征在于,所述方法还包括:在确定所述第一检测点集合中不包括落入到所述第二多边形的范围内的检测点时,判断所述第二检测点集合中是否包括落入到所述第一多边形的范围内的检测点;

在所述第二检测点集合中包括落入到所述第一多边形的范围内的检测点时,确定所述第一SVG图形与所述第二SVG图形之间发生碰撞。

5.根据权利要求4所述的方法,其特征在于,所述判断所述第二检测点集合中是否包括落入到所述第一多边形的范围内的检测点的步骤包括:遍历所述第二检测点集合,判断是否存在满足第二预设条件的第二检测点,其中,所述第二预设条件为:所述第二检测点所在的水平线在该第二检测点的左侧与所述第一多边形的交点的总数为奇数,且在该第二检测点的右侧与所述第一多边形的交点的总数为奇数;

当所述第二检测点集合中存在满足所述第二预设条件的第二检测点时,确定所述第二检测点集合中包括落入到所述第一多边形的范围内的检测点。

6.根据权利要求5所述的方法,其特征在于,所述第二检测点所在的水平线在该第二检测点的左侧与所述第一多边形的交点的总数为:所述第一多边形中位于所述第二检测点所在的垂直线的左侧、且位于所述第二检测点所在的水平线的下方的部分与该水平线的交点的总数;

所述第二检测点所在的水平线在该第二检测点的右侧与所述第一多边形的交点的总数为:所述第一多边形中位于所述第二检测点所在的垂直线的右侧、且位于所述第二检测点所在的水平线的下方的部分与该水平线的交点的总数。

7.一种SVG图形碰撞检测装置,其特征在于,所述装置包括:

第一获取模块,用于在第一SVG图形上获取第一检测点集合,所述第一检测点集合用于形成内接于所述第一SVG图形中的第一多边形;

第二获取模块,用于在第二SVG图形上获取第二检测点集合,所述第二检测点集合用于形成内接于所述第二SVG图形中的第二多边形;

第一判断模块,用于判断所述第一检测点集合中是否包括落入到所述第二多边形的范围内的检测点;

碰撞检测模块,用于在确定所述第一检测点集合中包括落入到所述第二多边形的范围内的检测点时,确定所述第一SVG图形与所述第二SVG图形之间发生碰撞;

其中,所述第一判断模块包括:

第一判断子模块,用于遍历所述第一检测点集合,判断是否存在满足第一预设条件的第一检测点,其中,所述第一预设条件为:所述第一检测点所在的水平线在该第一检测点的左侧与所述第二多边形的交点的总数为奇数,且在该第一检测点的右侧与所述第二多边形的交点的总数为奇数;

第一确定子模块,用于当所述第一检测点集合中存在满足所述第一预设条件的第一检测点时,确定所述第一检测点集合中包括落入到所述第二多边形的范围内的检测点。

8.根据权利要求7所述的装置,其特征在于,所述装置还包括:

第二判断模块,用于在确定所述第一检测点集合中不包括落入到所述第二多边形的范围内的检测点时,判断所述第二检测点集合中是否包括落入到所述第一多边形的范围内的检测点;

所述碰撞检测模块还用于在所述第二检测点集合中包括落入到所述第一多边形的范围内的检测点时,确定所述第一SVG图形与所述第二SVG图形之间发生碰撞。

9.根据权利要求8所述的装置,其特征在于,所述第二判断模块包括:第二判断子模块,用于遍历所述第二检测点集合,判断是否存在满足第二预设条件的第二检测点,其中,所述第二预设条件为:所述第二检测点所在的水平线在该第二检测点的左侧与所述第一多边形的交点的总数为奇数,且在该第二检测点的右侧与所述第一多边形的交点的总数为奇数;

第二确定子模块,用于当所述第二检测点集合中存在满足所述第二预设条件的第二检测点时,确定所述第二检测点集合中包括落入到所述第一多边形的范围内的检测点。