正在阅读:Java让Web显示数学特殊符号Java让Web显示数学特殊符号

2004-02-14 09:34 出处:中国计算机报 作者:曲径 责任编辑:huangpeidan
设计思路   要显示数学符号,显然不能用ASCⅡ字符,这就需要一种可定制的图形规范,SVG正好充当了这一角色。SVG是以XML格式描述二维图形的规范,并且能够动态生成,这一点正好便于生成数学符号。   数学公式的描述可以用XML来完成。XML在描述有序嵌套结构时非常方便、清晰,而且它本身是树结构,而数学公式可以抽象成为树形结构。例如以下数学符号可以抽象为图1。      
  数学符号   其中可以自己定义一些符号元素,例如根号、数字、求和符号等。再为这些元素加上描述其特点的属性,例如要有根号的长度等。这样就可以把一个数学公式的信息完整地描述出来。由于我们的目标是显示,因此上(下)标等都可以看作兄弟元素,统一用表示。
             图1 公式结构树   由于在SVG中显示的图形都是由图元组成的,因此需要根据图元定义符号显示格式。如图2对于字母或数字,按照现行的字形规则定义,对于特殊符号定义它的一些特征部位的格式。
  图2 显示格式定义   根据SVG图元显示的特点,每个图元都需要指定坐标。因此在定义完格式后还需要得到显示的坐标数据,例如根号就需要最左端的坐标、高度、宽度,数字则只需知道起始位置的坐标,如图3。   图3 显示坐标数据   为了用户输入方便,在系统中定义了一套输入规则,其中关键字是以“$”开头,由三个字母组成,如表1。   表1  自定义关键字   $SQR   根号   $INX   下标   $SIG   求和符号   $FRA   分号   符号的子元素在“[ ]”内描述。特殊符号,例如求和符、上下界等用“,”分开。例如上述的数学符号就可以表示为:$SQR[243$SIG[n, i=1] X $INX[i] ]。   这里要说明的是,定义词法时尽量符合书写习惯,避免过多的嵌套,例如变量的下标和变量属于兄弟关系而不是父子关系。   图4是将用户输入转变为图形显示的主要流程图,其中通过JAXP包将XML描述的公式树转化为SVG文件。在显示时可根据情况将SVG转变为JPG格式或直接嵌入网页中。         图4 用户输入转变为图形显示的流程图
键盘也能翻页,试试“← →”键

相关文章

关注我们

最新资讯离线随时看 聊天吐槽赢奖品