一种生成思维导图的方法和装置与流程

文档序号:12364234阅读:363来源:国知局
一种生成思维导图的方法和装置与流程

本发明涉及计算机技术领域,尤其涉及一种生成思维导图的方法和装置。



背景技术:

目前市面上有较多思维导图软件,比如XMind、iMindMap及百度脑图等,这些软件构建思维导图主要有两种方式:一是打开相应软件后,通过快捷键或右键的方式添加一个个节点生成思维导图;二是通过打开软件支持的格式的文档来生成思维导图。

针对上述第一种方式,通过添加一个个节点生成思维导图,这种方式生成速度较慢,需要依赖具体的思维导图工具进行编辑,不利于制作这种自由性强、组织性强的思维工具;针对上述第二种方式,通过打开特定格式的文档来生成思维导图,这种方式对文档格式要求较高,必须是软件本身保存的格式,或者是目前主流思维导图工具保存的格式,因此在解析其他非主流思维导图工具保存的文档时,成本较高,不同工具定位的文件格式不尽相同,无法覆盖到目前大部分的思维导图工具,只能兼容主流厂商的思维导图工具。



技术实现要素:

为解决相关技术问题,本发明提供一种生成思维导图的方法和装置,以方便通过导入的各种格式的文件快速生成思维导图。

为实现上述目的,本发明实施例采用如下技术方案:

第一方面,本发明实施例提供了一种生成思维导图的方法,包括:

导入预先制作的设定格式的文件,解析所述文件,获得每个节点的名称信息、父节点信息和子节点集合;

根据所述名称信息、父节点信息和子节点集合,计算每个节点的位置信息;

根据所述位置信息添加所述节点,生成思维导图。

第二方面,本发明实施例还对应提供了一种生成思维导图的装置,包括:

文件导入解析模块,用于导入预先制作的设定格式的文件,解析所述文件,获得每个节点的名称信息、父节点信息和子节点集合;

位置信息计算模块,用于根据所述名称信息、父节点信息和子节点集合,计算每个节点的位置信息;

思维导图生成模块,根据所述位置信息添加所述节点,生成思维导图。

本发明实施例提供的技术方案带来的有益效果:

本技术方案中,通过解析设定格式的文件,获得每个节点的名称信息、父节点信息和子节点集合,并根据每个节点的名称信息、父节点信息和子节点集合,计算每个节点的位置信息,根据位置信息在相应的位置添加相应的节点,生成思维导图;本技术方案可支持通过解析设定的通用格式文件来生成思维导图,且该文件中无需包含每个节点的位置信息,避免在生成思维导图时,逐个手动添加节点的麻烦,同时该文件的可编辑性很强,无需思维导图也可进行编辑。

附图说明

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

图1是本发明实施例一提供的一种生成思维导图的方法的流程示意图;

图2A是本发明实施例二提供的一种生成思维导图的方法的流程示意图;

图2B是本发明实施例二提供的一种通过广度优先算法逐层计算每个节点的位置信息的流程示意图;

图2C是本发明实施例二提供的队列操作流程示意图;

图2D是本发明实施例二提供的一种思维导图的结构示意图;

图3是本发明实施例三提供的一种生成思维导图的装置的架构示意图;

图4A是本发明实施例四提供的一种生成思维导图的装置的架构示意图;

图4B是本发明实施例四提供的位置信息计算模块的架构示意图。

具体实施方式

为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面将结合附图对本发明实施例的技术方案作进一步的详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

请参考图1,其是本发明实施例一提供的一种生成思维导图的方法的流程示意图。本实施例的方法可以应用于建立思维导图的场景,可以由智能手机、平板电脑和计算机等终端来执行。思维导图又叫心智图,是一种表达发射性思维的有效的图形思维工具。

该生成思维导图的方法,可以包括如下步骤:

S110:导入预先制作的设定格式的文件,解析文件,获得每个节点的名称信息、父节点信息和子节点集合。

示例性的,导入预先制作的通用格式的文件,通用格式的文件包括例如xml、json和html等格式的文件,对导入的文件进行解析,获得每个节点的名称信息、父节点信息和子节点集合。需要说明的是,节点的父节点信息可以为空不存在,例如根节点不存在父节点,节点的子节点集合可以为空集,例如叶子节点的子节点集合为空集。

S120:根据名称信息、父节点信息和子节点集合,计算每个节点的位置信息。

示例性的,根据上述解析获得的每个节点的名称信息、父节点信息和子节点集合,可以通过广度优先算法、深度优先算法等算法计算每个节点在显示思维导图的页面中的位置信息。本发明实施例二提供了一种采用广度优先算法计算节点位置的可选实施方式,在此对具体如何计算节点位置不加以赘述。

S130:根据位置信息添加节点,生成思维导图。

示例性的,根据上述S120计算出的节点的位置信息,在页面的相应位置处插入添加相应的节点,生成思维导图。在此需要说明的是,随着节点的插入,思维导图处于更新状态,思维导图的内容也会相应地更新。

综上,在本技术方案中,导入预先制作的设定格式的文件,解析文件,获得每个节点的名称信息、父节点信息和子节点集合,根据名称信息、父节点信息和子节点集合,计算每个节点的位置信息,根据位置信息添加节点,生成思维导图;通过解析设定的通用格式文件来生成思维导图,且该文件中无需包含每个节点的位置信息,避免在生成思维导图时,逐个手动添加节点的麻烦,同时该文件的可编辑性很强,无需思维导图也可进行编辑。

实施例二

请参考图2A和图2B,其中,图2A是本发明实施例二提供的一种生成思维导图的方法的流程示意图。本实施例与实施例一的主要区别在于,增加了定义数据模型的内容,及增加了根据数据模型,制作设定格式的文件的内容,本增加了上述S120的可选的实施方式。

该生成思维导图的方法,可以包括如下步骤:

S210:定义数据模型。

示例性的,为兼容不同的通用格式,可以先定义思维导图的数据模型。思维导图是一个将各级主题用相互隶属关系与相关的层级关系来呈现的工具,因此该数据模型可以定义成:一个根节点和多个子节点集合的组合。其中,根节点包括相应的名称信息和子节点集合,同理,子节点也包括相应的名称信息和子节点集合,子节点还包括相应的父节点信息。

S220:根据数据模型,制作设定格式的文件。

示例性的,根据上述预先定义好的数据模型,可以在数据模型中定义的各节点处添加相应要显示的内容,保存为设定的通用格式的文件,以xml格式文件为例,根节点的标签名为RootNode,子节点的标签名为Node,当某个节点的子节点集合不为空集时,则该节点还包含Children属性,Children中的每个元素同时也是一个Node。

S230:导入预先制作的设定格式的文件,解析文件,获得每个节点的名称信息、父节点信息和子节点集合。

示例性的,以导入xml格式文件为例,在解析导入的xml文件时,采用xml格式文件的解析方法来解析,根据xml格式文件中预设的标签获得根节点RootNode及相应的名称信息和子节点集合,获得每个子节点Node及相应的名称信息、父节点信息和子节点集合。

S240:根据名称信息、父节点信息和子节点集合,计算每个节点的位置信息。

示例性的,结合图2B和图2C,根据名称信息、父节点信息和子节点集合,可以通过广度优先算法逐层计算每个节点的位置信息,且具体流程如下:

步骤A、初始化队列,在队列中放入根节点;

步骤B、当队列为非空时,执行步骤C;当队列为空时,则结束操作;

步骤C、以页面最左侧居中位置为坐标原点、水平方向为横轴及竖直方向为纵轴建立坐标系,出队列获得当前节点(待插入节点),判断当前节点的父节点是否存在,若不存在,则确定当前节点为根节点,预置当前节点在坐标原点显示,执行步骤E;若存在,则确定当前节点不为根节点,根据当前节点的父节点的位置信息,及当前节点的父节点的已插入子节点个数计算当前节点应插入的当前位置,预置当前节点在当前位置插入显示并与当前节点的父节点连接,执行步骤D;

需要说明的是,在步骤C中,在不同的思维导图工具中,建立坐标系的方法可能会不一样,例如,有的思维导图工具也可能规定页面最右侧居中位置为坐标原点,或规定页面最上端居中位置为坐标原点等,此外,不同思维导图工具中规定各节点的间距一般也不相同;

步骤D、动态计算其他节点的相应位置信息,根据相应位置信息相应地动态调整其他节点的位置;

需要说明的是,在步骤D中,为保持显示思维导图时整体布局的协调性,根据向右扩展思维导图的风格习惯,首先需要调整当前节点的父节点中其他子节点的位置,然后从当前节点父节点的父节点开始向上逐层调整各节点的位置,调整其他节点的思路是向下逐层调整各节点的位置;

步骤E、若当前节点的子节点集合为非空集合,则将当前节点的子节点集合中的全部子节点逐个放入到队列,返回执行步骤C;若当前节点的子节点集合为空集,则返回步骤B。

为更好地说明本发明实施例的根据名称信息、父节点信息和子节点集合,通过广度优先算法逐层计算每个节点的位置信息的过程,请参考图2D,图2D中的流程与上述步骤A至步骤E的内容整体上是一致的。

具体的实施过程请参考图2C和图2D,初始化一个队列;节点N入队;确定队列非空,节点N出队,确定节点N为根节点并包括子节点N1和子节点N2,节点N1和节点N2入队,将节点N置于页面最左侧居中位置显示;确定队列非空,节点N1出队,确定N1不为根节点,N1的父节点为N,没有子节点,将节点N1置于根节点N的第一个子节点位置处显示;确定队列非空,节点N2出队,确定N2不为根节点,N2的父节点为N,包括子节点N21和子节点N22,节点N21和节点N22入队,将节点N2置于根节点N的第二个子节点位置处显示;确定队列非空,节点N21出队,确定N21不为根节点,N21的父节点为N2,没有子节点,将节点N21置于节点N2的第一个子节点位置处显示;确定队列非空,节点N22出队,确定N22不为根节点,N22的父节点为N2,没有子节点,将节点N22置于节点N2的第二个子节点位置处显示;确定队列为空,结束操作。

S250:根据位置信息添加节点,生成思维导图。

综上,在本技术方案中,根据预先定义好的数据模型,制作设定通用格式的文件,解析文件,获得每个节点的名称信息、父节点信息和子节点集合,根据名称信息、父节点信息和子节点集合,通过广度优先算法计算每个节点的位置信息,根据位置信息添加节点,生成思维导图;通过解析根据预先定义的数据模型制作的设定通用格式文件来生成思维导图,且该文件中无需包含每个节点的位置信息,避免在生成思维导图时,逐个手动添加节点的麻烦,同时该文件的可编辑性很强,无需思维导图也可进行编辑。

以下为本发明实施例提供的一种生成思维导图的装置的实施例。本发明实施例的一种生成思维导图的方法,和一种生成思维导图的装置属于一个总的发明构思,在一种生成思维导图的装置的实施例中未详尽描述的细节内容,可以参考上述一种生成思维导图的方法的实施例。

实施例三

请参考图3,其是本发明实施例三提供的一种生成思维导图的装置的架构示意图。该一种生成思维导图的装置300,可以包括如下内容:

文件导入解析模块310,用于导入预先制作的设定格式的文件,解析文件,获得每个节点的名称信息、父节点信息和子节点集合。

位置信息计算模块320,用于根据名称信息、父节点信息和子节点集合,计算每个节点的位置信息。

思维导图生成模块330,用于根据位置信息添加节点,生成思维导图。

其中,位置信息计算模块320,具体用于:根据名称信息、父节点信息和子节点集合,通过广度优先算法逐层计算每个节点的位置信息。

其中,上述设定格式文件包括xml、json和html等格式文件。

综上,在本技术方案中,导入预先制作的设定格式的文件,解析文件,获得每个节点的名称信息、父节点信息和子节点集合,根据名称信息、父节点信息和子节点集合,计算每个节点的位置信息,根据位置信息添加节点,生成思维导图;通过解析设定的通用格式文件来生成思维导图,且该文件中无需包含每个节点的位置信息,避免在生成思维导图时,逐个手动添加节点的麻烦,同时该文件的可编辑性很强,无需思维导图也可进行编辑。

实施例四

请参考图4A和图4B,其中,图4A是本发明实施例四提供的一种生成思维导图的装置的架构示意图。该一种生成思维导图的装置400,可以包括如下内容:

数据模型定义模块410,用于定义数据模型,其中,数据模型包括一个根节点和多个子节点集合;

文件制作模块420,用于根据数据模型,制作设定格式的文件。

文件导入解析模块430,用于导入预先制作的设定格式的文件,解析文件,获得每个节点的名称信息、父节点信息和子节点集合。

位置信息计算模块440,用于根据名称信息、父节点信息和子节点集合,计算每个节点的位置信息。

思维导图生成模块450,用于根据位置信息添加节点,生成思维导图。

其中,文件导入解析模块430,具体用于:导入预先制作的设定格式的文件,解析文件,根据预设的标签获得根节点的名称信息和子节点集合,及每个子节点的名称信息、父节点信息和子节点集合。

其中,如图4B所示,位置信息计算模块440,可以包括如下内容:

初始化子模块441,用于初始化队列,在队列中放入根节点。

队列判断子模块442,用于当队列为非空时,运行节点添加子模块;当队列为空时,则结束操作。

节点添加子模块443,用于以页面最左侧居中位置为坐标原点、水平方向为横轴及竖直方向为纵轴建立坐标系,出队列获得当前节点,判断当前节点的父节点是否存在,若不存在,则确定当前节点为根节点,预置当前节点在坐标原点显示,运行下述队列更新子模块445;若存在,则确定当前节点不为根节点,根据当前节点的父节点的位置信息,及当前节点的父节点的已插入子节点个数计算当前节点应插入的当前位置,预置当前节点在当前位置插入显示并与当前节点的父节点连接,运行下述动态调整子模块444。

动态调整子模块444,用于动态计算其他节点的相应位置信息,根据相应位置信息相应地动态调整其他节点的位置。

队列更新子模块445,用于若当前节点的子节点集合为非空集合,则将当前节点的子节点集合中的全部子节点逐个放入到队列,运行上述节点添加子模块443;若当前节点的子节点集合为空集,则运行上述队列判断子模块442。

综上,在本技术方案中,根据预先定义好的数据模型,制作设定通用格式的文件,解析文件,获得每个节点的名称信息、父节点信息和子节点集合,根据名称信息、父节点信息和子节点集合,通过广度优先算法计算每个节点的位置信息,根据位置信息添加节点,生成思维导图;通过解析根据预先定义的数据模型制作的设定通用格式文件来生成思维导图,且该文件中无需包含每个节点的位置信息,避免在生成思维导图时,逐个手动添加节点的麻烦,同时该文件的可编辑性很强,无需思维导图也可进行编辑。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

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