[发明专利]基于碰撞检测自动化展示树形复杂结构数据的设计方法有效

专利信息
申请号: 201911248007.4 申请日: 2019-12-09
公开(公告)号: CN111105479B 公开(公告)日: 2022-03-18
发明(设计)人: 夏天翼;陈正雄;吴涛 申请(专利权)人: 中国电子科技集团公司第三十研究所
主分类号: G06T11/20 分类号: G06T11/20
代理公司: 成都九鼎天元知识产权代理有限公司 51214 代理人: 邓世燕
地址: 610000 *** 国省代码: 四川;51
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 碰撞 检测 自动化 展示 树形 复杂 结构 数据 设计 方法
【权利要求书】:

1.一种基于碰撞检测自动化展示树形复杂结构数据的设计方法,其特征在于,包括:

步骤1,数据预处理:

(1)收集整理需要处理的数据,将数据进行结构化处理;

(2)定义节点类型连接规则:

一类节点下可以连接一类节点或二类节点,二类节点下只能连接二类节点;

(3)根据节点中的内容设置节点的宽度和高度:

为每类节点设置一个默认的宽度w与高度h,若某个节点中的内容高度超过了h则增加宽度,将内容换行并上下分散对齐得到新的宽度w2

步骤2,创建二类节点树,并确定二类节点的相对坐标:

(1)通过确定根节点创建二类节点树:

循环遍历数据,找出其中直接与一类节点相连的二类节点,将这些二类节点坐标设置为(0,0)作为根节点,以这些根节点形成的树即为二类节点树;

(2)根据二类节点树的根节点推导其他二类节点的初始坐标:

x坐标:首先从二类节点树的根节点开始判断是否有子节点,若有,则计算直接与其相连的子节点数量n,根据节点类型确定这些子节点间默认的x轴间隔宽度c、子节点的宽度w和高度h,并计算出直接与其相连的所有子节点总的宽度W=n*(w+2c),则直接与其相连的这些子节点中,第一个子节点的x坐标为W/2-c-w/2,后续节点的x坐标依次加上2c+w;然后再判断这些子节点是否还有子节点,若有,则再次通过前述方法做遍历赋值x坐标一直到节点没有子节点为止;

y坐标:子节点的y坐标则根据子节点本身的高度、与其连接的子节点的高度、以及节点与子节点间的y轴间隔高度增加:根节点的高度为h1、与之相连的子节点高度为h2、节点与子节点的y轴间隔高度为d,则子节点的y坐标为h1/2+h2/2+d;其中,y轴向下方向为正值,向上为负值;

(3)对二类节点树进行碰撞检测,修改重叠的二类节点的坐标:

遍历二类节点树,将每一级的第一个节点假设为每一级的最右侧节点,设每一级第一个确认的最右侧节点的坐标为x1,则最右侧边界的x坐标为x1加上节点宽度w的一半再加上节点默认的x轴间隔宽度c,即x1+w/2+c;

设每次遍历到的节点的x坐标为x2,则对比其左边界x2-w/2-c与最右侧边界的x坐标,若x2-x1w+2c则说明遍历到的节点错位或重叠,需要将该遍历到的节点的x坐标改为x1+2c+w,x轴偏移值为x1+2c+w-x2,并将该节点作为这一级新的最右侧节点;

然后判断该节点是否还有子节点,若存在子节点则遍历其所有子节点同时将这些节点的x坐标加上偏移值x1+2c+w-x2

(4)调整二类节点的坐标,得到二类节点的相对坐标:

对二类节点树进行深度优先遍历,将每一级的第一个节点假设为每一级的最右侧节点,设每一级第一个确认的最右侧节点的坐标为x1,则最右侧边界的x坐标为x1加上节点宽度w的一半再加上节点默认的x轴间隔宽度c,即x1+w/2+c;

判断节点是否有子节点,若没有子节点则判断当前节点左边界x坐标是否小于最右侧边界的x坐标,如果小于则将当前节点移动到x1+2c+w,然后将当前节点设为新的最右侧节点;若有子节点则继续对子节点做与前述节点相同的判断与位置调整,直至最底层没有子节点的节点为止;

然后从最底层开始反推父节点位置,假设节点的第一个子节点x坐标为xs,最后一个子节点的x坐标为xe,则父节点位置为(xs+xe)/2;完成所有节点的遍历与操作后将每个二类节点树的根节点Xr(xr,yr)的位置移动至(0,0),并将所有节点根据每个二类节点树的根节点的移动做相同的平移得到每个二类节点的相对坐标;

步骤3,确定所有节点的最终坐标:

(1)确定二类节点树相对于其连接的一类节点的相对坐标:

设一类节点的坐标为(x1,y1),其连接的二类节点树共有n棵,这n颗二类节点树的总宽度为W;判断该一类节点是否有子一类节点:

若该一类节点没有子一类节点,则与其连接的二类节点树的左边界为x1-W/2,然后根据每棵二类节点树的宽度将其平移到对应的位置;

若该一类节点有子一类节点,则需要从第一棵二类节点树开始判断:若加上当前二类节点树的宽度后,之前二类节点树的宽度相加大于所有二类节点树总宽度,则计算当前二类节点树是在x1的左侧还是右侧时,x1左侧的二类节点树和右侧的二类节点树宽度更为接近,将当前二类节点树放在宽度更为接近的一侧,然后根据左侧的二类节点树总宽度确定二类节点树的最左侧边界并根据每棵二类节点树的宽度将其平移到对应的位置;

(2)确定一类节点的y坐标,并修改与之关联的二类节点树的节点坐标:

从最上级的一类节点开始做深度优先遍历,其子一类节点的y坐标为其父节点的二类节点树的下边界值加上固定的y轴间隔高度;同时将与之关联的二类节点树的节点坐标做相应的修改;

(3)利用碰撞检测确定所有节点的最终坐标:

找出每个一类节点和与其相连的二类节点树组成的树的左右上下边界组成一个虚拟的矩形;

根据一类节点树的结构遍历这些矩形做碰撞检测,如果后一个矩形的左边界的值小于同级的前一个矩形的右边界值,则后一个矩形与前一个矩形有重叠或者错位,则将后一个矩形的左边界值修改为前一个矩形的右边界值;

完成遍历碰撞检测之后得到一个布局与最终树形图相同的树形图,然后找出该树形图的左右边界并计算出其中线后,将其中线平移到x坐标为0的位置则可得到所有节点的最终坐标;

步骤4,根据所有节点的最终坐标绘制树形图。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国电子科技集团公司第三十研究所,未经中国电子科技集团公司第三十研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201911248007.4/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top