A powerful GUI-based calculus calculator for symbolic mathematics, derivatives, integrals, and more.
Project description
CalculusCalculator 微积分计算器
CalculusCalculator 是一个基于 SymPy 和 PySide6 的图形化微积分计算工具,支持求导、积分、函数性质分析、表达式变形、方程(组)与不等式(组)求解、微分方程求解、符号计算、向量运算、解三角形、函数绘图、平面/立体几何定义、计算与绘图等功能,并提供了存档/读档及 Web 版本。
基本信息
- 项目地址:GitHub - limingkang12345/CalculusCalculator
- 网页版:https://limingkang.pythonanywhere.com
- 最新版本:v1.6.3
- 开发语言:Python 3.8+
- 核心库:SymPy(符号计算)、PySide6(GUI 框架)、Matplotlib(几何绘图)
- 功能概览:
- 显函数 / 隐函数求导(支持代入求值)
- 不定积分 / 定积分
- 函数值域、单调区间、奇偶性、周期、最值
- 表达式化简、展开、因式分解、通分、部分分式、三角恒等变换、对数变换、换元等 13 种方法
- 方程、不等式、方程组、不等式组的求解
- 常微分方程求解
- 符号计算:三种计算引擎(Python 内置 / Mpmath 高精度 / SymPy 符号),支持 LaTeX 渲染与源码复制
- 自定义函数列表(
fs字典),支持函数调用传参f(3)及嵌套调用f(g(2)) - 分母有理化:求导、积分、方程求解等结果自动执行有理化
- 向量运算(v1.5.0):定义二维向量,支持加法、减法、点积、夹角计算及向量属性显示
- 解三角形(v1.5.0):支持 ASA、AAS、SAS、SSA、SSS 等多种三角形条件求解
- 函数绘图(v1.5.0):基于 Matplotlib 绘制函数图像,支持自定义定义域
- 平面几何(v1.5.1):定义点/直线/线段/圆/三角形/多边形,支持位置关系构造(中垂线、角平分线、中线、高线、内切圆、旁切圆等),复选框筛选绘图
- 立体几何(v1.5.1):定义三维点/直线/线段/平面,支持平行/垂直构造、垂足计算、斜二测画法,复选框筛选 3D 绘图
- 几何计算(v1.5.2):平面几何 32 种运算(两点距离、中点、共线判断、直线/圆/三角形/多边形属性、向量计算、变换等)、立体几何 22 种运算(三维点/线/面关系、四面体体积、斜二测投影/面积变换等)
- 回车快捷键(v1.5.2):各页面主要文本输入框支持回车键触发对应按钮功能
- 工程存档/读档(JSON 格式),支持保存所有几何对象
- LaTeX 代码直接输入(v1.6.1):在表达式前添加
$标识,可直接输入 LaTeX 代码,系统自动解析为 SymPy 表达式
v1.6.3 更新内容
- 设置选项卡:新增"设置"选项卡,并将主题样式设置项移入设置选项卡
- 语言设置:新增"语言"设置项,支持英语界面
- 帮助文档:新增内置"帮助文档",提供用户文档与 API 文档
- 修复积分:修复不能进行不定积分和定积分的问题
- 资源优化:去掉
resources_rc.py中打包的 MathJax 库,并缩小 ico 体积
v1.6.2 更新内容
- 更换公式显示组件:数学公式显示组件由旧组件更换为
QGraphicsView,大幅减小程序打包体积 - 重构项目结构:增强项目规范性
- 启动加速:使用
lazy_loader,加快程序启动速度 - 修复样式:修复暗色主题下帮助文档内容样式错误的问题
v1.6 更新内容
- 窗口布局更新:所有窗口部件的位置现在会根据窗口大小自适应变化
- 现代化 UI:使用 PyQtDarkTheme-fork 样式库,实现现代化扁平 UI
- 界面主题:新增"界面主题"菜单项,支持切换浅色与深色主题
- 额外提供了 Nuitka 编译版本(Compiled)
v1.6.1 更新内容
- LaTeX 代码输入支持:支持直接输入 LaTeX 代码,需在 LaTeX 代码前添加
$标识,系统自动将 LaTeX 转换为对应的 SymPy 表达式 - 帮助页面性能优化:帮助页面的静态文档显示组件由
QWebEngineView改为QTextBrowser,显著提升加载性能 - 更新帮助文档与 README
v1.5.2 更新内容
- 几何计算:新增"平面计算"和"立体计算"页面,使用已定义对象进行几何运算——平面 32 种(距离/中点/共线/直线方程/交点/夹角/圆/三角形/多边形/向量/变换)、立体 22 种(三维距离/投影/共面/线面关系/四面体体积/斜二测画法面积变换)
- 回车快捷键:为所有有配套按钮的文本输入框增加回车触发计算/保存功能
- 菜单栏调整:新增"计算"菜单项,其下归类"计算""平面计算""立体计算"
- 帮助页面优化:帮助窗口现在随主窗口缩放自适应调整大小
v1.5.1 更新内容
- 平面几何:新增平面几何对象定义(点/直线/线段/圆/三角形/多边形),支持 19 种位置关系构造方法(中垂线、角平分线、平行线、垂线、中线、高线、中位线、内切圆、旁切圆等)
- 立体几何:新增立体几何对象定义(三维点/直线/线段/平面),支持平行/垂直构造、垂足计算、斜二测画法面积缩放
- 几何绘图:平面几何与立体几何均可通过复选框筛选要绘制的对象,基于 Matplotlib 渲染
- 更正平面几何与立体几何定义页面的下拉框参数提示
- 修复几何绘图中的字体渲染、直线符号匹配、存档/读档类型兼容等问题
v1.5.0 更新内容
- 新增向量功能,支持定义二维向量并执行简单的向量运算(加法、减法、点积、夹角、模、方向角、单位向量)
- 新增解三角形功能,支持 ASA、AAS、SAS、SSA、SSS 等多种三角形条件求解
- 新增绘图功能,支持绘制单个函数的图像
- 更改菜单栏布局,"新建"更名为"功能",并对功能进行归类
- 修复函数名被错误识别的问题(定义函数 t 后会将 sqrt 的 t 误替换为函数 t)
v1.4.4 更新内容
- 计算选项卡:新增计算选项卡,支持高精度和符号运算及 LaTeX 代码生成
- 函数调用:定义的函数现在可以
函数名(自变量值)形式直接调用,支持嵌套函数输入 - 分母有理化:大部分计算结果现在会自动执行分母有理化
- 不等式解集:不等式组的解现在以集合或区间的形式返回
- 存档增强:方程组和不等式组现在也会被写入存档
- UI 微调:微调界面以适配新版系统环境
- 修复:修复求解方程组时多解导致报错的问题
- 更新帮助文档
v1.4.3 更新内容
- 存档功能:新增存档功能,可通过 JSON 保存或读取存档
- 性能修复:修复启动后初次新建选项卡可能引发卡顿的问题
- 使用 WinRAR 创建更完整的安装程序,并使用 7z 创建更小的压缩包
v1.4.2 更新内容
- 修复代数式在输入时被自动化简,及在求解问题时不自动化简的问题
v1.4.1 更新内容
- 重构 UI:用户可以像操作浏览器一样增减功能标签页
- 首页改版:更换首页样式
- 菜单栏:新增菜单栏,并在"关于"中添加 GitHub 链接与网页版链接
- 修复:修复方程组结果不能正常显示的 bug
- 架构变动:UI 相关内容移至
ui目录下 - 体积优化:缩小打包后程序体积
亮点分析
-
功能全面
覆盖了微积分、代数、方程求解、几何计算中的常见需求,从基础的化简求导到隐函数、微分方程、平面立体几何一应俱全。 -
可视化界面
基于 PySide6 构建多标签页界面,每个功能独立窗口,计算结果以 LaTeX 形式在QGraphicsView(SVG)中实时渲染,帮助文档使用QTextBrowser显示。 -
自定义函数
用户可以定义f(x)、g(t)等函数,并在后续计算中通过f(3)、f(g(2))等形式直接调用,极大提升了灵活性和复用性。 -
分母有理化
计算结果如含根号分母,自动执行有理化(如1/sqrt(2)→sqrt(2)/2),使表达式更符合数学规范。 -
多引擎计算
新增的"计算"选项卡提供三种引擎:Python 内置适用于简单数值计算,Mpmath 适用于高精度计算,SymPy 适用于符号运算与 LaTeX 生成。 -
存档与恢复
可以将当前所有标签页的输入、自定义函数列表、标签页序号、几何对象等保存为 JSON 文件,下次打开时自动恢复现场。 -
跨平台打包
提供了cx_Freeze的打包配置(setup.py),可以生成 Windows 可执行文件,便于分发。 -
向量运算(v1.5.0 新增)
支持定义二维向量,查看向量的模、方向角、单位向量等属性,并可进行向量加法、减法、点积、夹角计算。 -
解三角形(v1.5.0 新增)
输入三角形的已知角度和边长条件,系统自动识别 ASA、AAS、SAS、SSA、SSS 等情形并求解,支持多解情况。 -
函数绘图(v1.5.0 新增)
基于 Matplotlib 绘制单个函数的图像,支持自定义定义域,自动处理间断点断线。 -
平面/立体几何(v1.5.1 新增)
支持平面几何 19 种构造和立体几何 12 种构造,并通过复选框筛选绘图,基于 Matplotlib 渲染 2D/3D 图像。 -
几何计算(v1.5.2 新增)
在已定义几何对象的基础上,提供平面几何 32 种和立体几何 22 种运算,涵盖距离、中点、投影、面积、体积、向量、斜二测画法面积变换等。 -
回车快捷键(v1.5.2 新增)
各页面主要输入框支持回车触发对应按钮,无需鼠标点击,提升操作效率。 -
Web 版补充
除了桌面客户端,还提供了在线网页版(基于 PythonAnywhere),方便快速体验。 -
LaTeX 代码直接输入(v1.6.1 新增)
在表达式前添加$标识即可直接输入 LaTeX 代码(如$\frac{x}{2}),系统自动将 LaTeX 解析为 SymPy 表达式进行计算。
部署使用
环境准备
- Python 3.8 或更高版本
- 推荐使用虚拟环境
安装依赖
pip install -r requirements.txt
requirements.txt 内容:
- PySide6==6.9.1
- sympy==1.14.0
- numpy
- matplotlib
运行桌面版
python run.py
使用网页版
直接访问 https://limingkang.pythonanywhere.com 即可在线使用,无需安装。
打包教程
项目使用 cx_Freeze 将 Python 脚本打包为独立的 Windows 可执行文件。
安装打包依赖:
pip install cx_Freeze
在根目录执行打包命令:
python setup.py build
打包完成后,可执行文件位于 build/exe.win-amd64-3.x/ 目录下(具体名称取决于系统和 Python 版本)。
缺点简述
- 性能限制:对于极其复杂的符号表达式,SymPy 计算可能会较慢或内存占用较高。
- 表达式解析宽容度:依赖 SymPy 的 sympify,用户输入需基本符合 Python/SymPy 语法,对不规范的表达式可能报错。
- 打包体积:cx_Freeze 打包后的程序体积较大(约 100+ MB),因为包含了整个 Python 环境和依赖库。
- Web 版功能:在线版本受限于 PythonAnywhere 的资源,可能无法处理过大的计算任务。
附:文件结构说明
CalculusCalculator/
├── run.py # 程序入口
├── setup.py # cx_Freeze 打包脚本
├── requirements.txt # Python 依赖列表
├── update.txt # 版本更新日志
├── mkdocs.yml # 文档站(MkDocs)配置
├── README.md # 项目说明
├── resources_rc.py # 编译后的资源文件
├── core/ # 核心模块
│ ├── sympify.py # 表达式安全转换、函数调用预处理、LaTeX 解析
│ └── render.py # 公式渲染(SVG / QGraphicsView)
├── functions/ # 各计算功能实现
│ ├── derivative.py # 显/隐函数求导
│ ├── integral.py # 积分计算
│ ├── functions.py # 函数性质分析
│ ├── simplification.py # 表达式变形(13 种方法)
│ ├── solvers.py # 方程/不等式/微分方程/解三角形求解
│ ├── planes.py # 平面几何计算与构造 API
│ ├── solids.py # 立体几何计算与构造 API(含斜二测画法)
│ ├── paint2D.py # 平面几何绘图渲染
│ ├── paint3D.py # 立体几何 3D 绘图渲染
│ └── saves.py # JSON 存档/读档
├── ui/ # 界面层(PySide6)
│ ├── __init__.py # 各选项卡逻辑实现汇总
│ ├── main.py # 主窗口逻辑
│ ├── i18n.py # 语言 / 主题读写与切换
│ ├── ui_main.py # 主窗口布局(自动生成)
│ ├── <功能>.py # 各功能页逻辑,如 dingyi / qiudao / jifen / bianxing /
│ │ # fangcheng / fangchengzu / budengshi / budengshizu / jisuan /
│ │ # shouye / dingyixiangliang / huitu_hanshu / jiesanjiaoxing /
│ │ # dingyi_pj / huitu_pj / dingyi_lj / huitu_lj / pjjisuan /
│ │ # ljjisuan / help / shezhi 等
│ └── ui_*.py # 各功能页布局(自动生成)
├── i18n/ # 翻译源文件
│ ├── zh_CN.ts # 中文翻译源
│ └── en_US.ts # 英文翻译源
└── docs/ # 文档源码(MkDocs 构建)
├── index.md # 首页
├── about.md # 关于 / 版本历史
├── guide/ # 用户指南(quickstart / installation / configuration)
└── api/ # API 参考(core/、modules/)
许可证
本项目采用 MIT 许可证。
作者
LiMingkang
- GitHub: limingkang12345
- 网页版: https://limingkang.pythonanywhere.com
- PYPI: https://pypi.org/project/CalculusCalculator/
欢迎 Star、Issue 和 Pull Request!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file calculuscalculator-1.6.3.tar.gz.
File metadata
- Download URL: calculuscalculator-1.6.3.tar.gz
- Upload date:
- Size: 145.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
23c6314b1b8fae5cc400d54a171189b104d773c1ff7c0bd6c9f218ed966228ee
|
|
| MD5 |
1eb1f571792437d3ec49e29512cb9a42
|
|
| BLAKE2b-256 |
e806c33226af940518219749fdb1e10751e89408be6fbc21121873d8333ef2e7
|
File details
Details for the file calculuscalculator-1.6.3-py3-none-any.whl.
File metadata
- Download URL: calculuscalculator-1.6.3-py3-none-any.whl
- Upload date:
- Size: 178.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a5110c662a0b8ddda4e1b0e2039eb8114a4d99730e37497ad603c581c74f38b
|
|
| MD5 |
4d6c2faf5864fa27b2ac9173069cae15
|
|
| BLAKE2b-256 |
f38c99bbd7e6d5266fc430ef53e6dd401453d94af78020f34b26b5eb6cc02501
|