CN104572577A - 数学公式处理方法及装置 - Google Patents
数学公式处理方法及装置 Download PDFInfo
- Publication number
- CN104572577A CN104572577A CN201410790497.1A CN201410790497A CN104572577A CN 104572577 A CN104572577 A CN 104572577A CN 201410790497 A CN201410790497 A CN 201410790497A CN 104572577 A CN104572577 A CN 104572577A
- Authority
- CN
- China
- Prior art keywords
- drawing object
- operand
- user
- formula content
- formula
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Document Processing Apparatus (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明提供一种数学公式处理方法及装置。方法包括:获取公式内容对应的主体对象,主体对象包括图形对象和图像对象之间的层次关系,图形对象之间的层次关系表示公式内容对应的运算顺序,图形对象包括运算类型属性和操作数属性;根据图形对象之间的层次关系、图形对象的运算类型属性和图形对象的操作数属性,获得图形对象对应的数学表达式;按照图形对象之间的层次关系,将图形对象对应的数学表达式绘制到页面中,以获得公式内容对应的数学公式。本申请可以克服数学公式受页面CSS样式影响的问题,提高数学公式的显示稳定性。
Description
【技术领域】
本发明涉及互联网技术领域,尤其涉及一种数学公式处理方法及装置。
【背景技术】
随着互联网技术的发展,在浏览器上展示数学公式的需求越来越迫切。目前业内主要采用以下方式在浏览器上编辑和呈现数学公式:
用户根据规定的“公式表示法”输入公式内容,浏览器使用超文本标记语言(HyperText Mark-up Language,HTML)和级联样式表(CascadingStyle Sheets,CSS)将用户输入的内容渲染成数学公式以供用户预览,用户在提交后,服务器按原样保存用户输入的内容。当用户需要阅读该数学公式时,服务器将之前保存的内容返回给浏览器,浏览器利用HTML和CSS将服务器返回的内容渲染成数学公式。
上述基于HTML呈现数学公式的方案,在呈现数学公式时,非常容易被宿主页面内的CSS样式影响,显示效果不稳定。
【发明内容】
本发明的多个方面提供一种数学公式处理方法及装置,用以克服数学公式受页面CSS样式影响的问题,提高数学公式的显示稳定性。
本发明的一方面,提供一种数学公式处理方法,包括:
获取公式内容对应的主体对象,所述主体对象包括图形对象和所述图像对象之间的层次关系,所述图形对象之间的层次关系表示所述公式内容对应的运算顺序,所述图形对象包括运算类型属性和操作数属性;
根据所述图形对象之间的层次关系、所述图形对象的运算类型属性和所述图形对象的操作数属性,获得所述图形对象对应的数学表达式;
按照所述图形对象之间的层次关系,将所述图形对象对应的数学表达式绘制到页面中,以获得所述公式内容对应的数学公式。
本发明的另一方面,提供一种数学公式处理装置,包括:
获取模块,用于获取公式内容对应的主体对象,所述主体对象包括图形对象和所述图像对象之间的层次关系,所述图形对象之间的层次关系表示所述公式内容对应的运算顺序,所述图形对象包括运算类型属性和操作数属性;
处理模块,用于根据所述图形对象之间的层次关系、所述图形对象的运算类型属性和所述图形对象的操作数属性,获得所述图形对象对应的数学表达式;
绘制模块,用于按照所述图形对象之间的层次关系,将所述图形对象对应的数学表达式绘制到页面中,以获得所述公式内容对应的数学公式。
在本发明中,通过主体对象来表示公式内容,具体通过主体对象包括的图形对象之间的层次关系表示公式内容对应的运算顺序,而图形对象包括运算类型属性和操作数属性;根据图形对象之间的层次关系、图形对象的运算类型属性和图形对象的操作数属性,获得图形对象对应的数学表达式,进一步按照图形对象之间的层次关系,将图形对象对应的数学表达式绘制到页面中,以获得公式内容对应的数学公式。本发明基于主体对象实现了通过绘图技术在页面中生成数学公式,不同于现有技术所使用的HTML标签,这使得本发明所生成的数学公式可以完全独立于页面,而成为一个独立的整体,因此不容易受到页面内CSS样式的干扰或影响,显示效果比较稳定。
【附图说明】
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的数学公式处理方法的流程示意图;
图2为本发明一实施例提供的用以说明如何正确地将公示内容分解成基准表达式的示意图;
图3为本发明一实施例提供的编辑界面的示意图;
图4-图9为本发明一实施例提供的生成公式语法树的过程示意图;
图10-图12为本发明一实施例提供的用户通过选区操作更改公式内容的过程示意图;
图13为本发明一实施例提供的数学公式处理装置的结构示意图。
【具体实施方式】
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明一实施例提供的数学公式处理方法的流程示意图。如图1所示,该方法包括:
101、获取公式内容对应的主体对象,该主体对象包括图形对象和图像对象之间的层次关系,图形对象之间的层次关系表示公式内容对应的运算顺序,图形对象包括运算类型属性和操作数属性。
102、根据上述图形对象之间的层次关系、图形对象的运算类型属性和图形对象的操作数属性,获得图形对象对应的数学表达式。
103、按照图形对象之间的层次关系,将图形对象对应的数学表达式绘制到页面中,以获得公式内容对应的数学公式。
本实施例提供一种数学公式处理方法,该方法可由数学公式处理装置来执行。数学公式处理装置可以是数学公式处理引擎或工具库,例如可以应用于浏览器环境中,用于实现基于web的数学公式处理;或者数据公式处理装置也可以作为独立的公式编辑器实现。
具体的,当需要在页面上展示数学公式时,获取公式内容对应的主体对象。公式内容是生成数学公式所需的内容,一般包括数学公式中的操作数、运算符以及运算顺序等信息。一般来说,公式内容可由用户输入,但不限于此。
值得说明的是,本实施例并不限定公式内容的表示方式。例如,用户可以以浏览器所支持的“公式表示法”输入公式内容。
在本实施例中,公式内容对应的主体对象实际上是一具有层次结构的对象(object),具体包括:图形对象和图形对象之间的层次关系,图形对象包括运算类型属性和操作数属性;图形对象之间具有层次关系,图形对象之间的层次关系体现了该主体对象的层次结构,图形对象之间的层次关系表示公式内容对应的运算顺序,也就是公式内容中各操作数之间的运算顺序。
图形对象的运算类型属性可以记为“name”属性,主要表示数学公式中的运算类型,例如“+”、“-”、“×”等。图形对象的操作数属性可以记为“operand”属性,该属性可以通过一个数组来表示,例如该数组可以按顺序记录在图形对象所在层次上所包含的“操作数”列表,其中每一个操作数可以是一个“简单对象”,也可以是一个“复合对象”。如果操作数是一个“复合对象”,则该操作数可以继续分解,以形成该图形对象下的子图形对象。
从整体来看,整个公式内容被分解成带有更简单语义的不同基准表达式,并转换成一具有层次结构的主体对象被存储起来。
可选的,具有层次结构的主体对象可以是一公式语法树,该公式语法树实际上是一颗用于标识数学公式的语法树。
在一种获取主体对象的实施方式中,公式内容对应的主体对象可以预先生成并存储到指定存储空间中,当需要在页面上展示数学公式时,数学公式处理装置可以直接从指定存储空间中获取主体对象。
在另一种获取主体对象的实施方式中,公式内容可以预先获取并存储到指定存储空间,当需要在页面上展示数学公式时,数学公式处理装置可以从指定存储空间中获取公式内容,通过对公式内容进行处理生成主体对象。例如,数学公式处理装置可以获取公式内容;按照预设的分解规则,将公式内容分解成不可再分解的基准表达式;根据基准表达式之间的层次关系、基准表达式的类型以及基准表达式包括的操作数,生成主体对象。其中,每个基准表达式映射成主体对象中的一个图形对象,基准表达式的类型和所包括的操作数分别被映射成图形对象的运算类型属性和操作数属性;基准表达式之间的层次关系被映射成图形对象之间的层次关系。
在上述实施方式中,把数学公式中出现的所有内容都看作操作数(包括数字和运算符号),再通过对操作数进行预处理,获取不可分解的基准表达式,例如:文本表达式、方根表达式、积分表达式等,以到达在呈现数学公式时可以复用这些基准表达式的目的,这样可以通过对这些基准表达式的组合以及相对位置的调整获得各种数学公式。
其中,上述基准表达式将根据其在数学公式中的显示效果对内部包含的元素进行相对定位。例如:文本表达式会对其内部的符号做线性排列;方根表达式则会根据其内容生成合适大小的根号,并排列其内容;积分表达式则会调整其包含的上下限,以使上下限处于相对正确的位置。
图2用以说明如何正确地将公示内容分解成基准表达式。如图2所示,向下的箭头表示对公式内容 进行分解,以获得基准表达式的过程,向上的箭头则是通过组合分解出来的基准表达式来获得数学公式的过程,这两个过程是互逆的。
为了帮助理解上述分解和组合过程,下面以公式: 的一个子部分(x+a)2进行说明:
首先,如图2中标号③所示的公式(x+a)2,其在数学上是一个平方式,在本实施例中,可以使用“上标表达式”(SuperscriptExpression)来表示。
然后,根据本实施例中上标表达式的要求对公式(x+a)2进行分解,最终得出标号为①的子表达式和标号为②的子表达式,此时,如果分解得到的子表达式不是一个文本表达式(TextExpression),则再次根据子表达式的要求对标号为①或者标号为②的子表达式进行分解,直到最终所有的表达式都分解为文本表达式为止。在这个例子中,对标号为③的表达式进行一次分解就可以得到两个文本表达式,即标号为①和②的两个子表达式,到此,分解过程结束。值得说明的是,图2中标号为③的表达式对应于主体对象,而标号为①和②的两个子表达式分别对应于主体对象中的一个图形对象。
最后,根据最终得到的文本表达式集合执行“还原”过程。“还原”的过程实际上是对“分解”进行逆序递归的过程,整个过程从最末端的文本表达式向上合并,每一次合并都会得到一个新的“复合表达式”,例如:方根表达式、上标表达式等。整个过程持续递归进行,直到最终仅剩下唯一的一个表达式,则该表达式就是最终所要的数学公式。
在又一种获取主体对象的实施方式中,公式内容未预先获得,而是在需要在页面上展示数学公式时由用户输入。基于此,当需要在页面上展示数学公式时,数学公式处理装置可以在页面上向用户提供一编辑界面,依次获取用户通过编辑界面输入的公式内容中的运算符号或操作数,以生成公式内容对应的主体对象。
例如,上述编辑界面可以包括可见编辑区域和隐藏编辑区域。其中,可见编辑区域主要用于供用户发出输入指令以及根据用户期望的方式向用户显示公式内容,隐藏编辑区域用于激活输入捕获事件并供用户输入公式内容。可选的,隐藏编辑区域是隐藏的。进一步,该编辑界面还可以包括:输入工具区域。该编辑界面的一种实现方式如图3所示,图3中标号为①区域是隐藏编辑区域,该区域在实际环境中是隐藏的,在这里显式地表现出来是为了直观地描述后续获取用户输入的操作数的过程。图3中标号为②的区域是可见编辑区域,用户可以在该区域内通过鼠标选中输入的公式。图3中标号为③的区域是输入工具区域,该区域提前预设了一些符号和公式,以方便用户直接选中输入,降低用户输入特殊字符和常用公式的复杂度。图3中标号为④的区域是模拟光标,用以提示用户当前输入光标所在的位置。
基于上述编辑界面,数学公式处理装置依次获取用户通过编辑界面输入的公式内容中的运算符号或操作数,以生成公式内容对应的主体对象的实施过程包括:
根据用户在可见编辑区域发出的编辑指令,在可见编辑区域显示指示当前输入位置的模拟光标,模拟光标会跟随用户的输入而移动,并将与模拟光标相关联的***光标定位到隐藏编辑区域,以激活输入捕获事件;例如,用户可以点击标号为②的可见编辑区域从而发出编辑指令。
用户可以通过键盘直接输入,也可以单击输入工具区域③所预定的字符或公式进行输入。当用户执行以上任一操作时,将会触发标号为①隐藏编辑区域的输入捕获事件。于是,将依次捕获用户在标号为①隐藏编辑区域输入的公式内容中的运算符号或操作数,并根据***光标的当前位置和所捕获到的运算符号或操作数在初始空对象中添加图形对象和/或图形对象中的操作数,以获得主体对象。
上述公式内容对应的主体对象是在用户输入公式内容的过程中生成的。
下面以用户输入公式内容a+b÷c-b/a,并以主体对象为公式语法树为例,说明生成公式语法树的过程。
当用户第一次输入时,此时内容为空,用户通过键盘输入第一个字符:“a”,此时得到公式语法树如图4所示。
用户继续通过键盘输入字符:“+”,此时得到公式语法树如图5所示。
用户继续通过键盘输入字符:“b”,此时得到公式语法树如图6所示。
接下来,用户需要输入“÷”符号,由于键盘上未提供直接输入“÷”符号的键,则用户可以通过编辑界面所包含的工具输入区域预设的符号输入“÷”,用户在点击相应的符号后,“÷”符号被输入到隐藏编辑区域中,此时得到公式语法树如图7。图7中新增的“\\div\\”是“÷”符号在本实施例公式语法树内部的表示方式。
用户继续通过键盘输入字符“c”和“-”,此时得到公式语法树如图8。
用户继续输入,此时应该输入分式:b/a,由于分式不能通过键盘直接输入,则用户需使用编辑界面中工具输入区域提供的预设公式进行输入,当用户点击相应的按钮并输入数据后,最终形成的语法树如图9。至此,获得了整个公式语法树。
值得说明的是,上述通过编辑界面输入公式内容的过程可以看做是编辑公式内容的过程。在实际应用中,用户在编辑公式内容时,会对公式内容的某一部分进行选区操作,以达到对公式内容中部分内容进行编辑的目的。
具体的,数学公式处理装置可以识别用户的选区操作,选区操作是指用户选中公式内容中的部分操作数的操作;根据用户选中的公式内容中的部分操作数,在主体对象中进行标记;获取用户在选区操作所选中的区域内重新输入的操作数,用重新输入的操作数替换主体对象上被标记的操作数。
下面将以一个简单的公式a+b÷c为例,说明用户通过选区操作,将公式:a+b÷c更改为新的公式:a+b-c的过程。
如图10所示,用户在标号为①的位置处按下鼠标左键,并持续不放,此时数学公式处理装置将捕获到该事件,从事件的附带信息中获取到此时的鼠标指针位置信息,并记录该信息。
用户在按住鼠标左键的情况下移动鼠标,其移动的轨迹如图10中标号为②的灰度框所示部分,此时,数学公式处理装置将捕获到该“鼠标移动”事件,从事件的附带信息中获取此刻鼠标指针的位置,并根据此刻的鼠标指针位置和之前记录的鼠标指针位置信息计算出选区。计算出选区后,将在“公式语法树”中相应位置***选区“标志位”以标记该选区信息。
用户继续移动鼠标,将持续触发“鼠标移动”事件,使上一步的过程重复执行以更新选区。
用户在图10中标号为③的位置处释放左键,此时数学公式处理装置将收到一个“鼠标按键弹起”的事件通知,以更新选区,并停止获取位置信息,选区将保持不变,直到用户重复上述各步骤的过程时,才会重新启动对选区的更新。此时,公式内部的语法树表示如图11所示,其中两条实线表示选区的起点和终点。值得说明的是,实线仅是标记方式的一种示例,并不限于此。
此时用户通过键盘键入字符:“-”,公式语法树将会首先移除掉图11中两条实线之间的内容,然后再***新的内容,更新后的语法树如图12所示。
图12中两条实线间的位置是图11中原来选区所在的位置,用户输入新的数据后,原有的选区被“闭合”,原选区包含的内容被删除,且在新的闭合的选区之前被***了新的内容,即“-”。
在此说明,用户除了编辑公式之外,还可以进行更新光标位置的操作。由于光标位置的更新实际上是选区更新的一个特例,其本质是一个选区长度为零的一个选区操作,其描述可以参考上面用户更改选区操作的描述,不再赘述。
值得说明的是,在图4-图9以及图11-图12中,每组“name”和“operand”组合构成一个图形对象,所有图形对象以及图形对象之间的层次关系构成主体对象。以图9为例,整个图9所示内容构成一主体对象;图9所示主体对象包括两个图形对象,一个图形对象的运算类型属性为“combination”,操作数属性为[“a”,“+”,“b”,“\\div\\”,“c”,“-”];另一个图形对象的运算类型属性为“fraction”,操作数属性为[“b”,“a”]。
由上述可见,本实施方式以非常直观的方式提供给用户使用,大大提升了公式的编辑和阅读体验,降低用户使用的门槛。另外,在本实施方式中,不需要与服务器通信,用户在网络较差的环境下,也可以很快进行公式编辑并看到编辑效果。还有,该实施方式对用户没有额外要求,用户不需要像现有技术那样必须了解专业的公式表示法-TeX,由于采用的是所见即所得的编辑方式,用户可以在输入后立即看到渲染的效果,不需要向服务器发出渲染请求,极大地提高了用户编辑过程的流程、降低了用户参与编辑的门槛。
基于上述各实施方式,在获得公式内容对应的主体对象之后,可以根据该主体对象包括的图形对象之间的层次关系、图形对象的运算类型属性和图形对象的操作数属性,获得图形对象对应的数学表达式。
例如,可以按照图形对象之间的层次关系由下往上的顺序,逐一确定图形对象;根据图形对象的运算类型属性和操作数属性进行图形绘制,以获得图形对象对应的数学表达式。
之后,数学公式处理装置可以按照图形对象之间的层次关系,将图形对象对应的数学表达式绘制到页面中,以获得公式内容对应的数学公式。
例如,以主体对象是一棵公式语法树为例,则数学公式处理装置可以复制一棵公式语法树,并将其称之为映射树,将映射树上的图形对象直接替换为图形对象对应的数学表达式,进而获得一棵由数学表达式构成的映射树,该映射树是一棵可绘制的树;之后,按照从上到下的顺序,将该映射树绘制到页面中,从而获得一个完整的数学公式。
值得说明的是,本实施例采用的绘制技术可以是SVG绘图技术,但不限于此。
由上述可见,本实施例通过主体对象来表示公式内容,具体通过主体对象包括的图形对象之间的层次关系表示公式内容对应的运算顺序,而图形对象包括运算类型属性和操作数属性;根据图形对象之间的层次关系、图形对象的运算类型属性和图形对象的操作数属性,获得图形对象对应的数学表达式,进一步按照图形对象之间的层次关系,将图形对象对应的数学表达式绘制到页面中,以获得公式内容对应的数学公式。本实施例基于主体对象实现了通过绘图技术在页面中生成数学公式,不同于现有技术所使用的HTML标签,这使得所生成的数学公式可以完全独立于页面,而成为一个独立的整体,因此不容易受到页面内CSS样式的干扰或影响,显示效果比较稳定。
本发明技术方案可以支持IE9及以上的IE浏览器、chrome、firefox、safari、opera等主流浏览器,用户可以在绝大多数的浏览器下编辑和阅读数学公式。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
图13为本申请一实施例提供的数学公式处理装置的结构示意图。如图13所示,该装置包括:获取模块1301、处理模块1302和绘制模块1303。
获取模块1301,用于获取公式内容对应的主体对象,主体对象包括图形对象和图像对象之间的层次关系,图形对象之间的层次关系表示公式内容对应的运算顺序,图形对象包括运算类型属性和操作数属性。
处理模块1302,与获取模块1301连接,用于根据图形对象之间的层次关系、图形对象的运算类型属性和图形对象的操作数属性,获得图形对象对应的数学表达式。
绘制模块1303,与处理模块1302连接,用于按照图形对象之间的层次关系,将处理模块1302获得的图形对象对应的数学表达式绘制到页面中,以获得公式内容对应的数学公式。
在一可选实施方式中,获取模块1301具体可用于:
获取公式内容;
按照预设的分解规则,将公式内容分解成不可再分解的基准表达式;
根据基准表达式之间的层次关系、基准表达式的类型以及基准表达式包括的操作数,生成主体对象。
在另一可选实施方式中,获取模块1301具体可用于:
在页面中向用户提供一编辑界面;
依次获取用户通过编辑界面输入的公式内容中的运算符号或操作数,以生成主体对象。
进一步可选的,上述编辑界面包括:可见编辑区域和隐藏编辑区域。
基于此,获取模块1301具体可用于:
在页面中向用户提供编辑界面;
根据用户在可见编辑区域发出的编辑指令,在可见编辑区域显示指示当前输入位置的模拟光标,模拟光标会跟随用户的输入而移动,并将与模拟光标相关联的***光标定位到隐藏编辑区域,以激活输入捕获事件;
依次捕获用户在隐藏编辑区域输入的公式内容中的运算符号或操作数,并根据***光标的当前位置和所捕获到的运算符号或操作数在初始空对象中添加图形对象和/或图形对象中的操作数,以获得主体对象。
进一步,本实施例提供的数学公式处理装置还可以包括:识别模块、标记模块和更新模块。
识别模块,用于识别用户的选区操作,选区操作是指用户选中公式内容中的部分操作数的操作;
标记模块,用于根据用户选中的公式内容中的部分操作数,在主体对象中进行标记;
更新模块,用于获取用户在选区操作所选中的区域内重新输入的操作数,用重新输入的操作数替换主体对象上被标记的操作数。
在一可选实施方式中,处理模块1302具体可用于:
按照图形对象之间的层次关系由下往上的顺序,逐一确定图形对象;
根据图形对象的运算类型属性和操作数属性进行图形绘制,以获得图形对象对应的数学表达式。
可选的,上述公式内容对应的主体对象为公式内容对应的公式语法树。
本实施例提供的数学公式处理装置,通过主体对象来表示公式内容,具体通过主体对象包括的图形对象之间的层次关系表示公式内容对应的运算顺序,而图形对象包括运算类型属性和操作数属性;根据图形对象之间的层次关系、图形对象的运算类型属性和图形对象的操作数属性,获得图形对象对应的数学表达式,进一步按照图形对象之间的层次关系,将图形对象对应的数学表达式绘制到页面中,以获得公式内容对应的数学公式。本实施例提供的数学公式处理装置基于主体对象实现了通过绘图技术在页面中生成数学公式,不同于现有技术所使用的HTML标签,这使得所生成的数学公式可以完全独立于页面,而成为一个独立的整体,因此不容易受到页面内CSS样式的干扰或影响,显示效果比较稳定。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (14)
1.一种数学公式处理方法,其特征在于,包括:
获取公式内容对应的主体对象,所述主体对象包括图形对象和所述图形对象之间的层次关系,所述图形对象之间的层次关系表示所述公式内容对应的运算顺序,所述图形对象包括运算类型属性和操作数属性;
根据所述图形对象之间的层次关系、所述图形对象的运算类型属性和所述图形对象的操作数属性,获得所述图形对象对应的数学表达式;
按照所述图形对象之间的层次关系,将所述图形对象对应的数学表达式绘制到页面中,以获得所述公式内容对应的数学公式。
2.根据权利要求1所述的方法,其特征在于,所述获取公式内容对应的主体对象,包括:
获取所述公式内容;
按照预设的分解规则,将所述公式内容分解成不可再分解的基准表达式;
根据所述基准表达式之间的层次关系、所述基准表达式的类型以及所述基准表达式包括的操作数,生成所述主体对象。
3.根据权利要求1所述的方法,其特征在于,所述获取所述公式内容对应的主体对象,包括:
在所述页面中向用户提供一编辑界面;
依次获取所述用户通过所述编辑界面输入的所述公式内容中的运算符号或操作数,以生成所述主体对象。
4.根据权利要求3所述的方法,其特征在于,所述编辑界面包括:可见编辑区域和隐藏编辑区域;
所述依次获取所述用户通过所述编辑界面输入的所述公式内容中的运算符号或操作数,以生成所述主体对象,包括:
根据所述用户在所述可见编辑区域发出的编辑指令,在所述可见编辑区域显示指示当前输入位置的模拟光标,所述模拟光标会跟随用户的输入而移动,并将与所述模拟光标相关联的***光标定位到所述隐藏编辑区域,以激活输入捕获事件;
依次捕获所述用户在所述隐藏编辑区域输入的所述公式内容中的运算符号或操作数,并根据所述***光标的当前位置和所述捕获到的运算符号或操作数在初始空对象中添加图形对象和/或图形对象中的操作数,以获得所述主体对象。
5.根据权利要求4所述的方法,其特征在于,在获得所述主体对象之后,还包括:
识别所述用户的选区操作,所述选区操作是指用户选中所述公式内容中的部分操作数的操作;
根据所述用户选中的所述公式内容中的部分操作数,在所述主体对象中进行标记;
获取所述用户在所述选区操作所选中的区域内重新输入的操作数,用所述重新输入的操作数替换所述主体对象上被标记的操作数。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述根据所述图形对象之间的层次关系、所述图形对象的运算类型属性和所述图形对象的操作数属性,获得所述图形对象对应的数学表达式,包括:
按照所述图形对象之间的层次关系由下往上的顺序,逐一确定所述图形对象;
根据所述图形对象的运算类型属性和操作数属性进行图形绘制,以获得所述图形对象对应的数学表达式。
7.根据权利要求1-5任一项所述的方法,其特征在于,所述公式内容对应的主体对象为所述公式内容对应的公式语法树。
8.一种数学公式处理装置,其特征在于,包括:
获取模块,用于获取公式内容对应的主体对象,所述主体对象包括图形对象和所述图像对象之间的层次关系,所述图形对象之间的层次关系表示所述公式内容对应的运算顺序,所述图形对象包括运算类型属性和操作数属性;
处理模块,用于根据所述图形对象之间的层次关系、所述图形对象的运算类型属性和所述图形对象的操作数属性,获得所述图形对象对应的数学表达式;
绘制模块,用于按照所述图形对象之间的层次关系,将所述图形对象对应的数学表达式绘制到页面中,以获得所述公式内容对应的数学公式。
9.根据权利要求8所述的装置,其特征在于,所述获取模块具体用于:
获取所述公式内容;
按照预设的分解规则,将所述公式内容分解成不可再分解的基准表达式;
根据所述基准表达式之间的层次关系、所述基准表达式的类型以及所述基准表达式包括的操作数,生成所述主体对象。
10.根据权利要求8所述的装置,其特征在于,所述获取模块具体用于:
在所述页面中向用户提供一编辑界面;
依次获取所述用户通过所述编辑界面输入的所述公式内容中的运算符号或操作数,以生成所述主体对象。
11.根据权利要求10所述的装置,其特征在于,所述编辑界面包括:可见编辑区域和隐藏编辑区域;
所述获取模块具体用于:
在所述页面中向所述用户提供所述编辑界面;
根据所述用户在所述可见编辑区域发出的编辑指令,在所述可见编辑区域显示指示当前输入位置的模拟光标,所述模拟光标会跟随用户的输入而移动,并将与所述模拟光标相关联的***光标定位到所述隐藏编辑区域,以激活输入捕获事件;
依次捕获所述用户在所述隐藏编辑区域输入的所述公式内容中的运算符号或操作数,并根据所述***光标的当前位置和所述捕获到的运算符号或操作数在初始空对象中添加图形对象和/或图形对象中的操作数,以获得所述主体对象。
12.根据权利要求11所述的装置,其特征在于,还包括:
识别模块,用于识别所述用户的选区操作,所述选区操作是指用户选中所述公式内容中的部分操作数的操作;
标记模块,用于根据所述用户选中的所述公式内容中的部分操作数,在所述主体对象中进行标记;
更新模块,用于获取所述用户在所述选区操作所选中的区域内重新输入的操作数,用所述重新输入的操作数替换所述主体对象上被标记的操作数。
13.根据权利要求8-12任一项所述的装置,其特征在于,所述处理模块具体用于:
按照所述图形对象之间的层次关系由下往上的顺序,逐一确定所述图形对象;
根据所述图形对象的运算类型属性和操作数属性进行图形绘制,以获得所述图形对象对应的数学表达式。
14.根据权利要求8-12任一项所述的装置,其特征在于,所述公式内容对应的主体对象为所述公式内容对应的公式语法树。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410790497.1A CN104572577B (zh) | 2014-12-17 | 2014-12-17 | 数学公式处理方法及装置 |
PCT/CN2015/083534 WO2016095502A1 (zh) | 2014-12-17 | 2015-07-08 | 数学公式处理方法、装置、设备和计算机存储介质 |
JP2017526093A JP6866551B2 (ja) | 2014-12-17 | 2015-07-08 | 数式処理方法、装置、デバイス及びプログラム |
KR1020177013186A KR101950126B1 (ko) | 2014-12-17 | 2015-07-08 | 수학공식 처리방법, 장치, 설비 및 컴퓨터 저장 매체 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410790497.1A CN104572577B (zh) | 2014-12-17 | 2014-12-17 | 数学公式处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104572577A true CN104572577A (zh) | 2015-04-29 |
CN104572577B CN104572577B (zh) | 2018-09-04 |
Family
ID=53088684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410790497.1A Active CN104572577B (zh) | 2014-12-17 | 2014-12-17 | 数学公式处理方法及装置 |
Country Status (4)
Country | Link |
---|---|
JP (1) | JP6866551B2 (zh) |
KR (1) | KR101950126B1 (zh) |
CN (1) | CN104572577B (zh) |
WO (1) | WO2016095502A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016095502A1 (zh) * | 2014-12-17 | 2016-06-23 | 百度在线网络技术(北京)有限公司 | 数学公式处理方法、装置、设备和计算机存储介质 |
CN106802749A (zh) * | 2015-11-25 | 2017-06-06 | 阿里巴巴集团控股有限公司 | 数值输入方法及装置 |
CN107832271A (zh) * | 2017-10-31 | 2018-03-23 | 广州视睿电子科技有限公司 | 函数图像绘制方法、装置、设备及计算机存储介质 |
WO2019019534A1 (zh) * | 2017-07-27 | 2019-01-31 | 广州视源电子科技股份有限公司 | 公式的显示方法、装置、终端及计算机可读存储介质 |
CN109992121A (zh) * | 2017-12-29 | 2019-07-09 | 北京搜狗科技发展有限公司 | 一种输入方法、装置和用于输入的装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111309302B (zh) * | 2020-02-06 | 2023-04-18 | 杭州电子科技大学 | 一种基于LaTeX的四则运算与三角函数混合运算公式转换Verilog代码的方法 |
CN112269476B (zh) * | 2020-10-28 | 2024-05-31 | 维沃移动通信有限公司 | 公式显示方法、装置和电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090019015A1 (en) * | 2006-03-15 | 2009-01-15 | Yoshinori Hijikata | Mathematical expression structured language object search system and search method |
CN101436309A (zh) * | 2008-12-15 | 2009-05-20 | 北大方正集团有限公司 | 一种修改公式运算符的方法和装置 |
CN102663138A (zh) * | 2012-05-03 | 2012-09-12 | 北京大学 | 一种公式查询条件的输入方法与装置 |
CN102693303A (zh) * | 2012-05-18 | 2012-09-26 | 上海极值信息技术有限公司 | 一种公式化数据的搜索方法及装置 |
CN103176954A (zh) * | 2013-03-27 | 2013-06-26 | 重庆市科学技术研究院 | 一种基于HTML5 canvas的数学公式显示方法及*** |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01108673A (ja) * | 1987-10-21 | 1989-04-25 | Hitachi Ltd | 数式入力編集方式 |
JP2000148738A (ja) * | 1998-11-16 | 2000-05-30 | Suuken Shuppan Kk | 数式入力・表示装置および方法並びに数式入力・表示プログラムを記録した記録媒体 |
US20040114258A1 (en) * | 2002-12-17 | 2004-06-17 | Harris Richard Alexander | Device and method for combining dynamic mathematical expressions and other multimedia objects within a document |
KR100963976B1 (ko) * | 2007-12-24 | 2010-06-15 | 엔에이치엔(주) | 이미지 정보에 기초하여 연산을 처리하기 위한 방법, 장치,시스템 및 컴퓨터 판독 가능한 기록 매체 |
BR112014017832B1 (pt) * | 2012-01-23 | 2021-07-06 | Microsoft Technology Licensing, Llc | método de detecção de fórmula para identificar uma fórmula matemática, sistema para detectar uma fór-mula que aparece em um documento de formato fixo e mídia legível por computador |
CN103425634B (zh) * | 2012-05-17 | 2016-04-06 | 北大方正集团有限公司 | 一种流式文档的生成方法及装置 |
CN103425773A (zh) * | 2013-08-02 | 2013-12-04 | 深圳市菁优网络科技有限公司 | 一种利用原生Html在网页中快速显示数学公式的方法 |
CN104572577B (zh) * | 2014-12-17 | 2018-09-04 | 百度在线网络技术(北京)有限公司 | 数学公式处理方法及装置 |
-
2014
- 2014-12-17 CN CN201410790497.1A patent/CN104572577B/zh active Active
-
2015
- 2015-07-08 JP JP2017526093A patent/JP6866551B2/ja active Active
- 2015-07-08 KR KR1020177013186A patent/KR101950126B1/ko active IP Right Grant
- 2015-07-08 WO PCT/CN2015/083534 patent/WO2016095502A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090019015A1 (en) * | 2006-03-15 | 2009-01-15 | Yoshinori Hijikata | Mathematical expression structured language object search system and search method |
CN101436309A (zh) * | 2008-12-15 | 2009-05-20 | 北大方正集团有限公司 | 一种修改公式运算符的方法和装置 |
CN102663138A (zh) * | 2012-05-03 | 2012-09-12 | 北京大学 | 一种公式查询条件的输入方法与装置 |
CN102693303A (zh) * | 2012-05-18 | 2012-09-26 | 上海极值信息技术有限公司 | 一种公式化数据的搜索方法及装置 |
CN103176954A (zh) * | 2013-03-27 | 2013-06-26 | 重庆市科学技术研究院 | 一种基于HTML5 canvas的数学公式显示方法及*** |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016095502A1 (zh) * | 2014-12-17 | 2016-06-23 | 百度在线网络技术(北京)有限公司 | 数学公式处理方法、装置、设备和计算机存储介质 |
CN106802749A (zh) * | 2015-11-25 | 2017-06-06 | 阿里巴巴集团控股有限公司 | 数值输入方法及装置 |
WO2019019534A1 (zh) * | 2017-07-27 | 2019-01-31 | 广州视源电子科技股份有限公司 | 公式的显示方法、装置、终端及计算机可读存储介质 |
CN107832271A (zh) * | 2017-10-31 | 2018-03-23 | 广州视睿电子科技有限公司 | 函数图像绘制方法、装置、设备及计算机存储介质 |
CN109992121A (zh) * | 2017-12-29 | 2019-07-09 | 北京搜狗科技发展有限公司 | 一种输入方法、装置和用于输入的装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20170071553A (ko) | 2017-06-23 |
CN104572577B (zh) | 2018-09-04 |
JP6866551B2 (ja) | 2021-04-28 |
WO2016095502A1 (zh) | 2016-06-23 |
KR101950126B1 (ko) | 2019-02-19 |
JP2018501551A (ja) | 2018-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104572577A (zh) | 数学公式处理方法及装置 | |
CN107844299B (zh) | 一种Web应用开发工具的实现方法 | |
CN101263490B (zh) | 用于提供直接样式表编辑的方法和*** | |
CN102112985B (zh) | 对页面的处理 | |
US20130185622A1 (en) | Methods and systems for handling annotations and using calculation of addresses in tree-based structures | |
CN107798084A (zh) | 一种web前端页面的可视化编辑生成***及装置 | |
CN103970750B (zh) | 一种生成html网页的方法和装置 | |
US20080040588A1 (en) | Data Processing Device and Data Processing Method | |
US20070061715A1 (en) | Methods and systems for providing an editable visual formatting model | |
US20190147022A1 (en) | Method, program, recording medium, and device for assisting in creating homepage | |
CN104657451A (zh) | 页面的处理方法及装置 | |
CN115309298B (zh) | 基于富文本编辑器的文本结构化方法及装置、介质及设备 | |
US20070208995A1 (en) | Document Processing Device and Document Processing Method | |
CN110543298A (zh) | 网页样式生成方法及装置、网页生成方法及装置 | |
WO2005098660A1 (ja) | 文書処理装置及び文書処理方法 | |
CN111708529B (zh) | 一种基于angular通过拖拽生成表单的实现方法 | |
US20080195950A1 (en) | Document Processing Device and Document Processing Method | |
CN105468766A (zh) | 网页制作方法及其*** | |
US20080282143A1 (en) | Document Processing Device and Document Processing Method | |
JP7230439B2 (ja) | 情報処理装置及びプログラム | |
KR101649822B1 (ko) | 웹페이지 구축 장치 및 방법 | |
JPWO2006051974A1 (ja) | 文書処理装置および文書処理方法 | |
CN108228179A (zh) | 页面国际化的处理方法、装置、计算机及存储介质 | |
US20100138735A1 (en) | Document processing device | |
JP2007183849A (ja) | 文書処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |