开发数学系统时,需要掌握的几个基于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则是用代码生成图像。
但是,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,所以太复杂的图形无法显示。
开发数学系统时,需要掌握的几个基于Web的数学框架的更多相关文章
- 开发BI系统时的需求分析研究
我们知道MIS,知道ERP,知道GIS等等,这些系统在管理限制上有很多的冲突,管理和被管理,开放和限制等等,然而BI在开始就不是这样的.BI要求的就是易用还要易于扩展,首先是报表,这个是你无条件的需要 ...
- WPF开发ArcGis系统时的异常信息: ArcGIS product not specified. You must first bind to an ArcGIS version prior to using any ArcGIS components.
“System.Runtime.InteropServices.COMException”类型的未经处理的异常在 Arcgis_Test.exe 中发生 其他信息: ArcGIS product no ...
- 开发MIS系统的相关技术
Java Web应用的核心技术包括以下几个方面:● JSP:进行输入和输出的基本手段.● JavaBean:完成功能的处理.● Servlet:对应用的流程进行控制.● JDBC:是与数据库进行交互不 ...
- 如何整合Office Web Apps至自己开发的系统(一)
在前面我的一篇博客中 Office Web Apps安装部署(一),有一张介绍Office Web Apps与其他系统的关系图, 从上述图中,可知实际上Office Web Apps也是可以接入自 ...
- 基于SageMath的数学网站——本科毕业开发项目
1 绪论 1.1研究背景 我国是一个拥有15亿人口的大国.其中,据2017年的统计,全国共有大学生2600万左右.如此数量众多的大学生,都会有着学习基础数理课程的需求.而在高校的数学教学中,教授最多最 ...
- 利用微软Speech SDK 5.1开发语音识别系统主要步骤
利用微软Speech SDK 5.1开发语音识别系统主要步骤 2009-09-17 10:21:09| 分类: 知识点滴|字号 订阅 微软语音识别分两种模式:文本识别模式和命令识别模式.此两种模式的 ...
- 开发mis系统的技术
一.b/s架构 b/s架构:就broser/server,浏览器/服务器的说法.服务器端要运行tomcat,提供链接数据库服务供java代码读写数据,这个可以在eclipse中配置运行.浏览器则解释j ...
- 搭建日志收集系统时使用客户端连接etcd遇到的问题
问题: 在做日志收集系统时使用到etcd,其中server端在linux上,首先安装第三方包(windows)(安装过程可能会有问题,我遇到的是连接谷歌官网请求超时,如果已经出现下面的两个文件夹并且文 ...
- 开发mis系统需要的技术
一.b/s架构 b/s架构:就broser/server,浏览器/服务器的说法.服务器端要运行tomcat,提供链接数据库服务供java代码读写数据,这个可以在eclipse中配置运行.浏览器则解释j ...
随机推荐
- Java程序设计学习笔记(四)—— GUI
时间:2016-3-24 11:24 天道酬勤 --GUI(图形用户界面) 1.GUI Graphical User Interface(图形用户接口). 用图形的 ...
- windows下mysql5.7.17配置
1.官网下载mysql5.7.17 64位 https://dev.mysql.com/downloads/mysql/ 2.安装完解压到E盘主目录下,改文件名为mysql 3.配置环境变量 我的电脑 ...
- MySQL日志系统bin log、redo log和undo log
MySQL日志系统bin log.redo log和undo log 今人不见古时月,今月曾经照古人. 简介:日志是MySQL数据库的重要组成部分,记录着数据库运行期间各种状态信息,主要包括错误日 ...
- vue 导出excel后端返回乱码下载不了的解析问题
有俩种方法可以用 第一种方法: 解析:直接解析并且下载后端的乱码 this.download('后端给的导出excel的方法', { ...this.queryParams }, ` ...
- 剑指 Offer 38. 字符串的排列
剑指 Offer 38. 字符串的排列 输入一个字符串,打印出该字符串中字符的所有排列. 你可以以任意顺序返回这个字符串数组,但里面不能有重复元素. 示例: 输入:s = "abc" ...
- noip模拟42
A. 卷 发现乘积足以爆 \(long\) \(long\),但是数据随机,可以略忽略精度问题 一个快速降低数的级别的方法是取对数,由于有性质 \(log(x * y)=logx+logy\),合并时 ...
- Git - Mac 电脑使用 brew 更新 Git
安装 Homebrew Homebrew 是一个软件包管理器.它的作用就是将软件包安装到自己的目录中,然后将其文件符号链接到 /usr/local.更多信息,请自行进入官网查看 https://bre ...
- C#中的“等待窗体”对话框
这篇文章向您展示了如何在c#.net Windows窗体应用程序中创建一个等待窗体对话框.创建一个新表单,然后输入您的表单名称为frmWaitForm.接下来,将Label,Progress Bar控 ...
- 在C#中将图像转换为BASE64
本教程说明如何在C#.NET Windows Forms Application中将图像转换为base64字符串,以及将base64字符串转换为图像.您可以创建一个新的Windows窗体应用程序项目来 ...
- VUE004. provide与inject的使用(祖先组件隔多层传静态值给子孙组件)
provide和inject可以通过祖先组件隔三层四层甚至隔着九层妖塔传值给子孙组件. 需要注意的是这样的传值方式是非响应式的,需要结合自身的应用场景,比如将上传的限制条件通过父组件传值给子组件的子组 ...