zoukankan      html  css  js  c++  java
  • 开发数学系统时,需要掌握的几个基于Web的数学框架

    在做数学系统时,经常要和数学公式打交道,这里介绍几个常用的基于Web的数学处理软件。

    数学系统主要包括三类:(1)数学公式的显示,也就是如何使用web显示复杂的数学公式。

    (2)图像制作,例如长方形,椭圆等 (3)公式的几何图形,例如y=x*x 的几何图形形状。

    1. MathJax

    MathJax使用基于HTML+JS+CSS 来显示数学公式。虽然他叫做MathJax,但是,其实对于物理、化学等公式都可以显示。

    MathJax使用简单,首先引入必要的JS

    <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
    <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
    

    然后就可以写出漂亮的数学公式了。MathJax使用Latex语法,下面是一个是LaTex公式

    $$Gamma(z) = int_0^infty t^{z-1}e^{-t}dt\,.$$
    

      最终浏览器显示效果是:

    MathJax使用Canvas或者SVG显示数学公式,这使得他放大缩小都不失真,而且易于编辑。

     地址 https://www.mathjax.org

    2.KaTex

    KaTex是另外一个开源的数学公式显示软件,和MathJax相比,他更轻巧、速度更快。

    但是,他更专注与数学公式,对于其它学科支持的不是很好。

    当然,Katex也一直在完善。地址 https://katex.org

     

    3.ipandao

    Editor.md是一个开源的Markdown编辑器,轻巧实用。可以集成MathJax和Katex。

    官网 http://editor.md.ipandao.com

    4.Math.js

    math是基于JavaScript的数学运算库。地址 https://mathjs.org

     在JavaScript里,虽然提供了Math库,但是他也仅仅只包含简单的加减乘除,乘方,开方运算,

    远远无法满足工科需求。而math.js提供了更强大的复杂运算。

    例如,他支持 复数的加减乘除,支持矩阵运算,微积分的求导和积分等。

    print(math.evaluate('9 / 3 + 2i')) // 运算结果为复数 3 + 2i
    print(math.evaluate('det([-1, 2; 3, 1])')) //运算结果为 -7  

     基于math.js也诞生了一批插件。

    5 SvgEdit

     在数学系统里,除了公式,还有图像,在日常老师上课里,除了公式,就是图像,例如长方形,椭圆。

    SvgEdit是一个矢量图形编辑功能,他允许你动态创建,修改图像。

    Svg生成的图像后期可能更改,采用SVG不失真。

    https://github.com/SVG-Edit/svgedit

    6.SVG.JS

    上面介绍的那个SVG是用手画出图像,

    而SVG.JS则是用代码生成图像。

    官网见 https://svgjs.dev/

    但是,svg.js V3.0对V2.0改动的非常大,这使得现在好多文档仍然以2.0为主。

    而且,3.0似乎用起来也没有2.0顺手。

    7. 微软浏览器-Edge

    数学公式是一个“硬功夫”,微软从不缺席的,

    微软在Edge浏览器内置了数学计算功能。

    在Edge的设置里可以看到“Math Solve”

    微软内置的这个数学功能非常强大,他能给出数学计算步骤,画出图形等

    7.数学公式 js-graphy

    js-graphy 是我以前在制作一个小的数学 http://demo.dotnetcms.org/math 系统时用到的一个开源插件。官网 https://github.com/laktak/js-graphy

     js-graphy 不支持math.js,所以太复杂的图形无法显示。

  • 相关阅读:
    递归函数
    python学习笔记
    套接字学习笔记
    Tomcat学习笔记3
    Tomcat学习笔记2
    《Python学习手册 第五版》 -第29章 类代码编写细节
    《Python学习手册 第五版》 -第28章 一个更加实际的示例
    《Python学习手册 第五版》 -第27章 类代码编写基础
    《Python学习手册 第五版》 -第26章 OOP:宏伟蓝图
    《Python学习手册 第五版》 -第25章 高级模块话题
  • 原文地址:https://www.cnblogs.com/mqingqing123/p/15405038.html
Copyright © 2011-2022 走看看