MIT License

技术解读

以下内容由 GitRead 中文社区 编辑团队基于项目 README 与官方资料整理, 结合中文开发者的常见使用场景补充技术选型建议。具体以项目官方文档为准。

zllrr mather 技术深度分析

项目背景与痛点

在众多数学工具中,zllrr mather 作为一款专为数学学习、教育和研究设计的离线辅助工具,它既迎合了快速获取答案的需求,又能通过在线及离线模式应对各种场景。项目旨在构建全面覆盖数学学科的解题、作图及演示解决方案,满足专业数学家、编程专家、教育工作者及科普工作者需求。它不仅支持公式的编辑与显示,还涵盖几何和代数领域的作图功能,并针对线性代数、离散数学的专业功能不断扩展。面对当前市面上大多数工具依赖在线网络支持而产生延时或无法离线使用的问题,mather 是一个理想的替代选择。

核心技术揭秘

技术栈与架构

mather 采用多组件集成的模块化设计,侧重用户体验和灵活性,实现动态加载与插件式扩展。通过以下组件和关键技术栈,满足用户不同需求:

  • 前端:Vue 框架用于构建界面,HTML5、CSS3 及 JavaScript 技术栈支撑作用域和交互。
  • 后端:Python Flask 框架作为中间后端管理器,处理用户的请求并调用相应功能模块,各模块经过清洗数据后返回给前端。
  • 存储:SQLite 用于本地数据存储和缓存,确保离线运行高效稳定。
  • 数学引擎:针对核心领域设计,支持数学公式和视觉组件(如 SVG)的实时加载与图形化表示。

数据流与架构设计

下面展示了一个大概的数据流图,帮助读者了解主要工作流。

graph TD A[用户输入] --> B[前端解析] B --> C{"参数校验"} C -->|"通过"| D[路由分配] D --> E[请求处理] E --> F{"返回数据"} F -->|"成功"| G[前端展示] F -->|"失败"| H[错误提示]

面对跨多学科领域数据处理需求,通过模块化设计与数据模块化搭建的方式实现扩展性的信息处理机制,使得不同学科的知识高效整合和传递。

功能亮点与差异

相较其他数学工具,zllrr mather 不仅具备强大的动态加载能力,涵盖公式的编辑与展示、基础作图功能,更加专注于线性代数和离散数学。它不同于现有的在线数学学习平台,实现无缝离线使用。其核心亮点在于提供一个可视化的作图功能,并将教学和自我学习流程高效直观地呈现给用户。此外,通过增加新功能模块,mather 逐步建立起更加全面的功能覆盖。

应用场景与落地建议

mather 特别适用于高校教师或数学家需要批量添加公式和作图任务,同时它也能用于日常学习过程中的知识点查询和作图操作。使用时需要注意:

  • 确保SQLite 数据库文件路径配置正确以提高读写效率。
  • 保持本地资源文件的及时更新。
  • 个性化设置界面以适应不同的使用场景。

在生产环境部署mather的流程需要细致配置多个库和构建环境,以期最大程度体现工具性能。

综合评价

优点:

  • 强调离线可用性,兼顾各数学学科领域的学习需求。
  • 集成先进的数学引擎,保证高水平的解题和作图功能。
  • 开发与配置过程高度模块化,支持后期持续迭代。

缺点:

  • 社区活跃度有待进一步提升。
  • 目前仅覆盖部分领域的解题功能,未来须增加对更多领域支持。
  • 依赖于SQLite库本地存储,需谨慎设计确保资源占用合理和性能高效。

README

zzllrr Mather Logo

zzllrr Mather - An open-sourced Web APP for Mathematics

zzllrr Mather Demo Version Screenshot

小乐数学,一款基于web网页的覆盖数学全部学科的数学开源软件。

For global users国际用户请访问 https://zzllrr.github.io/mather/

For Chinese users国内用户请访问 http://zzllrr.gitee.io/mather/

MIT License Donate

| About 关于 | API | Background 背景 | MIT License 许可证 | Credits 鸣谢 |

Aims 宗旨

Make mathematics easier to learn, practice, teach, study, appreciate, play, show, spread and reach.

让数学更易学易练,易教易研,易赏易玩,易见易得,易传易及。

Summary 摘要

Out of the box 开箱即用(兼容电脑和触屏移动设备),

Serverless, Offline & Step-by-step 支持离线解题(步骤)、数学运算、公式编辑、几何绘图、

Richmedia Showcase 富媒体演示(文档、PPT、AR、VR、语音、2D及3D动画等富媒体)、

Knowledge Base 知识库(数学概念实体库、公式库、定理库、题库、文献资源索引库)。

Wide range of users 软件适合广大的数学师生、爱好者、研究者、开发者、科普工作者使用。

Comprehensive content on Mathematics 在内容上,覆盖全数学学科的知识概念和思想方法图谱、典型题库和解法、未解难题及开放课题;

Multi-functionality 在功能上,集公式编辑、几何绘图、演示交互、解题、知识穿透联想、数学百科启发探索于一身;

Compact, portable, powerful, customizable 软件体积小巧便携,但功能强大,高度结构化和系统化,并可离线使用和自由扩展定制。

How to Use 使用方法

1. Online 直接在线使用

访问网址 https://zzllrr.github.io/mather/ 或 http://zzllrr.gitee.io/mather/

2. Offline 离线使用

  1. 下载安装包源文件
  2. 打开其中的网页index.html即可
  3. 可以独立使用的工具(单独打开html运行)
Filename文件名 Application用途 Entrance入口
index.html Homepage首页 For Chinese Users国内用户 Local本地 Online在线
editor.html Editor编辑器 For Chinese Users国内用户 Local本地 Online在线
doodle.html Doodle涂鸦 For Chinese Users国内用户 Local本地 Online在线
document.html Document文档 For Chinese Users国内用户 Local本地 Online在线
slide.html Slide幻灯片 For Chinese Users国内用户 Local本地 Online在线
speech.html Speech语音 For Chinese Users国内用户 Local本地 Online在线
3d.html 3D三维立体 For Chinese Users国内用户 Local本地 Online在线
vr.html VR虚拟现实 For Chinese Users国内用户 Local本地 Online在线
ar.html AR增强现实 For Chinese Users国内用户 Local本地 Online在线
wiki.html Wiki百科 For Chinese Users国内用户 Local本地 Online在线
teaching.html Teaching教学 For Chinese Users国内用户 Local本地 Online在线
academic.html Academic学术 For Chinese Users国内用户 Local本地 Online在线
technology.html Technology技术 For Chinese Users国内用户 Local本地 Online在线
science.html Science科学 For Chinese Users国内用户 Local本地 Online在线
culture.html Culture文化 For Chinese Users国内用户 Local本地 Online在线
about.html About关于 For Chinese Users国内用户 Local本地 Online在线
api.html API接口 For Chinese Users国内用户 Local本地 Online在线

Function 功能模块

0. Editor 编辑器功能

在输入框右侧,选择一种输入格式,可以编辑相应格式的内容。

    1. Math Formula Editor 数学公式编辑 在输入框中,输入LaTeX语法命令(支持Unicode字符),或者点击相应公式按钮,得到模板,再进行编辑。 点击右侧的预览按钮(左箭头),可以开启或关闭实时LaTeX数学公式预览功能。
    1. Document Editor 文档编辑 点击演示(Show)菜单,文档(Document)子菜单, 在输入框中,输入文本内容(以及图形或动画命令),然后点击左侧下方的运行 (Ctrl + Enter)按钮,可以进入文档浏览模式。 支持LaTeX、Markdown、HTML、SVG、Canvas、JavaScript、Echarts、Zdog、VR、AR等格式混合内容排版, 不同格式内容需使用相应闭合标签括起来。 例如(更多示例,参见软件内的输入框右侧提示):
  • Inline formula 行内数学公式:使用IL标签包裹LaTeX内容(参见KaTeX所支持的语法)

<IL>x^2+y^2=z^2</IL>
  • Display formula 行间数学公式:使用LA标签包裹LaTeX内容(参见KaTeX所支持的语法)
<LA>x^2+y^2=z^2</LA>
  • Markdown:使用MD标签包裹Markdown内容 与常见Markdown软件支持的格式类似。数学公式用美元符号$括起来。

  • HTML:直接输入,无需额外的闭合标签包裹

  • SVG 矢量图:直接输入完整的SVG源代码,或者使用SV标签包裹内容

<SV><rect x=10 y=10 width=100 height=30 stroke=green fill=none /></SV>
  • Canvas 画布:用CV标签包裹Canvas的JS代码(变量c代指canvas.getContext(‘2d’))

<CV>

c.strokeRect(10, 20, 200, 150);

</CV>

  • JavaScript: 用JS标签包裹JS代码片段

<JS>

1+2

</JS>

  • Echarts: 用EC标签包裹Echarts中的JSON数据命令

<EC>

{"xAxis":{"type":"category","data":["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]},"yAxis":{"type":"value"},"series":[{"data":[100,932,901,200,400,600,700],"type":"line"}]}

</EC>

可以画出一个折线图

  • I18 国际化:用I18标签包裹英文键值(软件会在预览时自动翻译为当前语言):
<I18>Algebra and Geometry</I18>
  • EN 翻译成英语:用EN标签包裹英文键值(软件会在预览时自动翻译为英文语言):
<EN>代数 几何</EN>
    1. Plot 数学图形绘制 输入方式,支持命令输入(文本框输入)和可视化编辑(点击右上角图标,或者按下快捷键Esc进入)。 输出格式,支持Canvas画布或SVG矢量图。 另外,还封装集成了Echarts图表生成工具箱,实现各种统计图的快速生成。 另外,点击Graphic(作图)菜单,可以输入数据,点击产生相应数学图形。 另外,还嵌入集成了GeoGebra, Desmos等著名免费数学软件模块。

1. Solve 解题

点击解题(Solve)菜单,选择相应子学科,点击子菜单,输入内容,点击运行按钮即可 目前仅支持下列学科的解题:

  • 21 代数学 -> 2110 线性代数(或 2119 其它代数学科,初等代数的内容放在这里)
  • 81 离散数学

eg. Solving Determinant 例如:求解矩阵行列式

  1. 点击解题(Solve)菜单,选择相应子学科:21 代数学 -> 2110 线性代数,默认进入矩阵子选项
  2. 选择“行列式”,点击|A|子菜单
  3. 文本框输入矩阵: 1 2 3 4
  4. 点击下方运行 (Ctrl + Enter)按钮,立即得出行列式求解步骤和结果

2. Show 演示

点击演示(Show)菜单,文档(Document)子菜单,

  • Document 文档功能:在输入框输入内容(支持格式参见上述文档编辑功能的介绍)。

如使用外链文档,直接在输入框中输入文档网址,点击运行 (Ctrl + Enter)按钮即可

例如,打开网址:document.html?src=你的文档地址

即可在线查看你的文档

  • PPT 功能:使用section闭合标签,将每一张幻灯片的内容括起来。

如使用外链PPT文档,直接在输入框中输入文档网址,点击运行 (Ctrl + Enter)按钮即可

例如,打开网址:slide.html?src=你的PPT文档地址,

即可在线演示你的PPT文档

  • Text to Speech 文字转语音:输入文本内容,点击左下方运行 (Ctrl + Enter)按钮,播放语音音频。

注意:文字转语音功能,需要联网才能使用。

  • VR、AR 功能:使用a-scene闭合标签,编辑相应源代码,再点击运行 (Ctrl + Enter)按钮即可。

如使用外链VR、AR文档,直接在输入框中输入文档网址,点击运行 (Ctrl + Enter)按钮即可

例如,打开网址:vr.html?src=你的VR文档地址 或 ar.html?src=你的AR文档地址

即可在线查看你的VR作品或AR作品

3. Wiki 百科

点击百科(Wiki)菜单,选择相应子学科,即可。

4. Teaching 教学

贴近教学场景所支持的功能,如课程及题库设计、考试试题出卷、阅卷批改、课堂测验、抢答、投票等(待完善)

5. Academic 学术

满足科研人员所支持的功能,如论文检索、写作发表、学术研讨、竞赛奖项追踪等(待完善)

6. Technology 技术

满足技术人员所支持的功能,如数学建模,软件编程,硬件设计,产学研标准化(待完善)

7. Science 科学

满足数学科普及在相关的大科学问题、终极问题方面的基础研究探索功能,如宇宙、生命、健康、智能、环境保护等(待完善)

8. Culture 文化

通过数学游戏、玩具、历史、漫画、视频、博客等。来加快普及数学文化,增进大众对数学的了解。(待完善)

Future Plans 未来方向

  • Restucture core 完成内核精简和重构,减少不同开源库之间的重复冗余和不相容代码
  • Open protocol promotion 推进行业协议

How to Contribute 如何贡献

  • 如果你是开发者,相信你的编码能力一定比小乐强。 欢迎创建你自己的分支branch,将其中的非第三方API,进行优化重构重写。 一些第三方API,也可以使用您认为更优秀的库进行替换升级。
  • 如果你是数学工作者,请不吝赐教您的专业数学知识,贡献理论知识库,或相关建设建议。 方法是编写一系列该软件支持的格式的数学课程或百科内容。
  • 如果你是用户,请尽情使用和分享吧!让数学人尽可学。

Additional information 附录相关链接

Donate zzllrr via Wechat

评论

暂无评论