首页 新闻 会员 周边

C#如何将xml保存的数学公式读取出来并保存成图片?

0
悬赏园豆:200 [已关闭问题] 关闭于 2014-03-07 15:03

Xml保存的数学公式:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE math SYSTEM "d:\dtdandxsl\mathml2.dtd">
<math>
<mrow>
<mfenced open="[" close="]">
<mtable>
<mtr>
<mtd>
<mi>y</mi>
<mn>1</mn>
<mrow>
<mo>(</mo>
<mi>t</mi>
<mo>)</mo>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mi>y</mi>
<mn>2</mn>
<mrow>
<mo>(</mo>
<mi>t</mi>
<mo>)</mo>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>=</mo>
<mfenced open="[" close="]">
<mtable>
<mtr>
<mtd>
<mi>A</mi>
<mn>11</mn>
<mrow>
<mo>(</mo>
<mi>t</mi>
<mo>)</mo>
</mrow>
</mtd>
<mtd>
<mi>A</mi>
<mn>12</mn>
<mrow>
<mo>(</mo>
<mi>t</mi>
<mo>)</mo>
</mrow>
</mtd>
<mtd>
<mi>A</mi>
<mn>13</mn>
<mrow>
<mo>(</mo>
<mi>t</mi>
<mo>)</mo>
</mrow>
</mtd>
<mtd>
<mi>A</mi>
<mn>14</mn>
<mrow>
<mo>(</mo>
<mi>t</mi>
<mo>)</mo>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mi>A</mi>
<mn>21</mn>
<mrow>
<mo>(</mo>
<mi>t</mi>
<mo>)</mo>
</mrow>
</mtd>
<mtd>
<mi>A</mi>
<mn>22</mn>
<mrow>
<mo>(</mo>
<mi>t</mi>
<mo>)</mo>
</mrow>
</mtd>
<mtd>
<mi>A</mi>
<mn>23</mn>
<mrow>
<mo>(</mo>
<mi>t</mi>
<mo>)</mo>
</mrow>
</mtd>
<mtd>
<mi>A</mi>
<mn>24</mn>
<mrow>
<mo>(</mo>
<mi>t</mi>
<mo>)</mo>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
<mfenced open="[" close="]">
<mtable>
<mtr>
<mtd>
<mi>x</mi>
<mn>1</mn>
<mrow>
<mo>(</mo>
<mi>t</mi>
<mo>)</mo>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mi>x</mi>
<mn>2</mn>
<mrow>
<mo>(</mo>
<mi>t</mi>
<mo>)</mo>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mi>x</mi>
<mn>3</mn>
<mrow>
<mo>(</mo>
<mi>t</mi>
<mo>)</mo>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mi>x</mi>
<mn>4</mn>
<mrow>
<mo>(</mo>
<mi>t</mi>
<mo>)</mo>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
</mrow>
</math>

 

需要生成的图片如下, 不知道如何使用matlab的api来做.. 毕竟这只是一个公式, 而不是一个计算, 求大神指点迷津!

 

平常心。的主页 平常心。 | 初学一级 | 园豆:11
提问于:2014-03-05 16:12
< >
分享
所有回答(4)
0

Matlab API 是方便其他语言调用其计算功能的吧?

这个似乎,你得自己解析xml文件,然后使用图形库自己绘制公式。
MS Word 是可以绘制数学公式的,你似乎应该从 Office API 入手。

另,可以参考一下:http://www.cnblogs.com/jdmei520/archive/2009/11/10/1600058.html

飞扬的尘埃 | 园豆:1318 (小虾三级) | 2014-03-05 16:38
0

这个直接用绘图就可以了啊

你需要做的

1.计算各个表mtable的行列数 比如第一个table 2行1列 第二个table 2行4列 第三个4行3列,这样就可以进行布局了

2.根据以上数据计算绘画位置,比如竖向居中等,各个符号(文字)的起始结束位置

3.绘画,比如方括号,不是字符中的方括号而是花直线画出来的

4.封装成类库

这样就有自己的API库去做这个事情,以后再也不用妈妈担心的

广林 | 园豆:204 (菜鸟二级) | 2014-03-05 16:58
0

http://www.forkosh.com/mathtex.html

http://www.codeproject.com/Articles/11406/Enable-Your-Users-to-Write-Math-Equations-in-Your

喵喵喵猫 | 园豆:1742 (小虾三级) | 2014-03-05 17:18
0

J多谢各位的回答, 小弟已经解决了这个问题了, 给各位分享一下吧.

那个XML是MathML标识语言, 使用它的一个开源的渲染器Euclid就把原来的XML转成数学公式图了. 再一次谢谢大家. 

由于Euclid是基于java开发的, 所以小弟只好另起了一个进程来使用批处理调用这个jar包.. 比较笨拙了算是.

平常心。 | 园豆:11 (初学一级) | 2014-03-07 15:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册