一种公式绘制方法和装置与流程

文档序号:12464584阅读:120来源:国知局
一种公式绘制方法和装置与流程

本发明涉及计算机技术领域,尤其涉及一种公式绘制方法和装置。



背景技术:

数学公式在计算机上进行绘制时,需要对公式中的各个元素进行对齐和排版,以获取更好的显示效果。现有的方案当中,通常通过直接限定元素的位置,以实现元素的对齐和排版。然而,由于元素直接限定,会造成公式的错乱和显示不全,公式排版无法平齐,导致公式绘制的效果较差。



技术实现要素:

本发明实施例的目的在于提供一种公式绘制方法和装置,实现高效美观的公式绘制。

为实现上述目的,本发明实施例提供了一种公式绘制方法,包括:

获取用户输入的基本公式元素,并获取所述基本公式元素的对齐线位置;

根据所述基本公式元素的对齐线位置,逐级计算上级元素的对齐线位置,直至获取到顶级元素的对齐线位置;

根据所述顶级元素的对齐线位置,对所述顶级元素进行排版。

优选地,所述根据所述基本公式元素的对齐线的位置,逐级计算上级元素的对齐线位置,直至获取到顶级元素的对齐线位置,包括:

在对上级元素进行绘制时,根据所述上级元素的子元素的对齐线位置,计算所述上级元素的对齐线位置;并根据所述子元素的对齐线位置,对所述子元素进行排版。

优选地,所述在对上级元素进行绘制时,根据所述上级元素的子元素的对齐线位置,计算所述上级元素的对齐线位置;并根据所述子元素的对齐线位置,对所述子元素进行排版,包括:

根据所述上级元素的元素类型,调用相应的对齐线计算规则,并代入所述上级元素的子元素的对齐线位置,以计算所述上级元素的对齐线位置;

根据所述上级元素的元素类型,调用相应的排版规则,并代入所述上级元素的子元素的对齐线位置,以对所述子元素进行排版。

优选地,所述根据所述顶级元素的对齐线位置,对所述顶级元素进行排版,包括:

以高度最高的顶级元素的对齐线为基准,其他顶级元素的对齐线与所述高度最高的顶级元素的对齐线保持对齐。

相应地,本发明实施例还提供了一种公式绘制装置,包括:

输入获取模块,用于获取用户输入的基本公式元素,并获取所述基本公式元素的对齐线位置;

对齐线计算模块,用于根据所述基本公式元素的对齐线位置,逐级计算上级元素的对齐线位置,直至获取到顶级元素的对齐线位置;

排版模块,用于根据所述顶级元素的对齐线位置,对所述顶级元素进行排版。

优选地,所述对齐线计算模块包括:

计算排版单元,用于在对上级元素进行绘制时,根据所述上级元素的子元素的对齐线位置,计算所述上级元素的对齐线位置;并根据所述子元素的对齐线位置,对所述子元素进行排版。

优选地,所述计算排版单元包括:

对齐线计算子单元,用于根据所述上级元素的元素类型,调用相应的对齐线计算规则,并代入所述上级元素的子元素的对齐线位置,以计算所述上级元素的对齐线位置;

上级元素排版子单元,用于根据所述上级元素的元素类型,调用相应的排版规则,并代入所述上级元素的子元素的对齐线位置,以对所述子元素进行排版。

优选地,所述排版模块包括:

排版单元,用于以高度最高的顶级元素的对齐线为基准,其他顶级元素的对齐线与所述高度最高的顶级元素的对齐线保持对齐。

本发明依据基本公式元素的对齐线位置,逐级计算上级元素的对齐线位置,直至获取到顶级元素的对齐线位置,并根据顶级元素的对齐线位置,对所述顶级元素进行排版。采用本发明可让公式中的每个元素决定自身的绘制位置,逐级上报,有助于避免公式显示错乱,提高公式绘制的效率,改善公式绘制效果。

附图说明

图1是本发明提供的公式绘制方法的一个实施例的流程图;

图2是如图1所示实施例提供元素对齐线的示意图;

图3是如图2所示实施例提供元素对齐后的示意图;

图4是本发明提供的公式绘制装置的一个实施例的结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1,是本发明提供的公式绘制方法的一个实施例的流程图。

如图1所示,所述公式绘制方法包括:

S1,获取用户输入的基本公式元素,并获取所述基本公式元素的对齐线位置。

本软件系统在进入数学公式内容编辑时,等待用户进行基本公式元素的输入,如果用户输入了基本公式元素,则获取所述基本公式元素的对齐线位置。在具体实施当中,输入的基本公式元素决定自身对齐线的位置,基本公式元素的对齐线位置可以为编程人员预先设定的,也可以按照一定的算法进行计算,如可以为所述基本公式元素自身高度的二分之一。所述基本公式元素为组成公式的基本单元,如数字、字母和一些常用的运算符号等。

S2,根据所述基本公式元素的对齐线位置,逐级计算上级元素的对齐线位置,直至获取到顶级元素的对齐线位置。

具体地,在对上级元素进行绘制时,根据所述上级元素的子元素的对齐线位置,计算所述上级元素的对齐线位置。并根据所述子元素的对齐线位置,对所述子元素进行排版。可通过以下方式实现:

根据所述上级元素的元素类型,调用相应的对齐线计算规则,并代入所述上级元素的子元素的对齐线位置,以计算所述上级元素的对齐线位置。

根据所述上级元素的元素类型,调用相应的排版规则,并代入所述上级元素的子元素的对齐线位置,以对所述子元素进行排版。

上级元素根据自身特性可以分为分号元素、根号元素和指数元素等等,在具体实施当中,由于不同元素类型的对对齐线位置和排版的要求不同,如分号元素为上下结构,根号元素的子元素位于根号内部,在计算不同类型元素的对齐线位置和进行排版时,可根据各自特性,调用不同的规则方法。

S3,根据所述顶级元素的对齐线位置,对所述顶级元素进行排版。

在具体实施当中,可以以高度最高的顶级元素的对齐线为基准,其他顶级元素的对齐线与所述高度最高的顶级元素的对齐线保持对齐。

下面以用户输入这个常规的平方根公式为例,对本发明进行进一步说明:

首先对于整个数学公式来说有个顶级元素,称为Math元素,对于这个公式来说,对于Math这一级一共有三个子元素分别是“x”、“=”和第一个子元素“x”并没有细分下一级的子元素,那么“x”的对齐线位置为自身高度的1/2,记为P1。同样地,对于第二个子元素“=”,也是没有细分下一级的子元素,那么“=”的对齐线位置为自身高度的1/2,记为P2。

对于第三个子元素来说,是一个分号元素,我们记为Mfrac元素,Mfrac元素的对齐线位置为自身子元素中分数线上面的那个子元素的高度值加上一个高度阈值。在这个实例中,Mfrac元素以分数线为界线,分数线的上部为3.1子元素,分数线的下部为3.2子元素,那么第三个子元素的对齐线位置就变为求3.1子元素的高度的问题。

当然对于3.1子元素来说,其具有细分下一级的四个子元素分别是“-”、“b”、“±”和以前述的相同方法,分别求上述细分后的四个子元素的对齐线位置,最终得出3.1子元素的对齐线,并按照四个子元素中的每个子元素的对齐线都排版到同一水平线上方式排列这四个子元素,如此完成了3.1元素的排列,最后根据3.1子元素的高度计算得出第三个子元素的对齐线位置,记为P3。

由前述步骤可获得Math级别的三个顶级元素的对齐线分别是P1、P2和P3。P1、P2和P3是每个子元素自己相对于自己的位置坐标。每个元素绘制的时候能知道自己的高度大小,则上述公式的三个顶级元素最终的计算结果如图2所示。

软件系统计算出每个元素对齐线上方的高度h1,对齐线下方的高度h2,然后比较每个元素的上方高度,以最高的那个元素的对齐线为基准,其他元素的对齐线与它的对齐线保持对齐,对齐后的结果如图3所示。

经上述步骤,对于Math这一级的元素就排列完毕了,基于相同的原理从最底层的基本公式元素逐个排列一直排列到顶级元素,即可实现整个数学公式的排列。

由此可见,本发明能让每个元素自己决定自身的绘制位置,逐级上报,高效美观的完成数学公式的绘制。

参见图4,是本发明提供的公式绘制装置的一个实施例的结构图。本实施例的基本原理与前述方法实施例一致,本实施例中未详述之处可参见前述实施中的相关描述。

如图4所示,所述公式绘制装置,包括:

输入获取模块41,用于获取用户输入的基本公式元素,并获取所述基本公式元素的对齐线位置。

对齐线计算模块42,用于根据所述基本公式元素的对齐线位置,逐级计算上级元素的对齐线位置,直至获取到顶级元素的对齐线位置。

排版模块43,用于根据所述顶级元素的对齐线位置,对所述顶级元素进行排版。

其中,所述对齐线计算模块42包括:

计算排版单元421,用于在对上级元素进行绘制时,根据所述上级元素的子元素的对齐线位置,计算所述上级元素的对齐线位置。并根据所述子元素的对齐线位置,对所述子元素进行排版。

具体地,所述计算排版单元421包括:

对齐线计算子单元,用于根据所述上级元素的元素类型,调用相应的对齐线计算规则,并代入所述上级元素的子元素的对齐线位置,以计算所述上级元素的对齐线位置。

上级元素排版子单元,用于根据所述上级元素的元素类型,调用相应的排版规则,并代入所述上级元素的子元素的对齐线位置,以对所述子元素进行排版。

所述排版模块43包括:

排版单元431,用于以高度最高的顶级元素的对齐线为基准,其他顶级元素的对齐线与所述高度最高的顶级元素的对齐线保持对齐。

综上所述,本发明依据基本公式元素的对齐线位置,逐级计算上级元素的对齐线位置,直至获取到顶级元素的对齐线位置,并根据顶级元素的对齐线位置,对所述顶级元素进行排版。采用本发明可让公式中的每个元素决定自身的绘制位置,逐级上报,有助于避免公式显示错乱,提高公式绘制的效率,改善公式绘制效果。

需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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