基于python的函数图像计算器
简明扼要的,GPL2.0协议意味着:你可以修改本代码,但你不能用作商用,且在修改完源代码后,以本协议开源你修改的源代码
- 背景:在我们的日常学习生活中,需要函数图像辅助我们理解函数
- 功能:
- 绘制函数图像(已实现),导出函数图像(已实现)
- 获取函数详细信息(极值)(已实现)
- 解方程(已实现)
- 内嵌python运行 (未实现)
- 拟合曲线 (已实现)
- 其它函数与代数功能
- 具体实现方法:
- 利用Matplotlib实现函数绘制,并利用Matplotlib的mathtext功能实现Latex(部分)渲染
- 利用flet构建应用UI与多平台支持
- 使用latexify/sympy作为函数表达式转为Latex
- 使用sympy实现解方程
- 使用scipy与numpy实现函数相关操作
- 使用numpy生成列表
- 名字由来
- ”算“取自《则古昔斋算学》(清 李善兰),其中“方阐”取自其中的《方圆阐幽》一章,李善兰先生作为中国首名翻译函数的人,其著作可以说很具有划时代的影响,虽然此项目并不会有划时代的影响,但我还是希望能以此为契机,鼓励我能将计算机爱好坚持下去
- 英文名Ca为Calc,Fn为function,Chan即为中文”阐“的音译
- 实际上在现代数学的理解中,”算“可以理解为“计算”,“方“可以理解为“方程”,“阐”理解为“阐述”,方程与函数关系密切,考虑的种种因素,这种理解也算合理
- 注:该应用的latexify库与mathtext函数都是经过作者修改过的,latexify与mathtext函数已经内嵌进了本项目(位于./matplot/latex/),其中latexify-py库的fork在qjasn/latexify_get_from_code中
请确保你已经安装了python3.11,pip与git
注意:Linux与 Web以及未安装字体包的Windows很大可能会出现中文字体显示问题
git clone https://github.com/qjasn/flet-tools.git # 克隆本项目
cd flet-tools # 进入本项目根目录
python3 -m venv .venv # 建立虚拟python环境
source .venv/bin/activate # 进入虚拟python环境
pip install -r requirements.txt # 安装依赖
flet run # 运行该应用
请确保你已经安装了python3.11,pip与git
# 请在powershell下运行
git clone https://github.com/qjasn/flet-tools.git # 克隆本项目
cd flet-tools # 进入本项目根目录
python3 -m venv .venv # 建立虚拟python环境
.\.venv\Scripts\Activate.ps1 # 进入虚拟python环境
pip install -r requirements.txt # 安装依赖
flet run # 运行该应用
iOS、Android与Web调试 (iOS与Android请安装Flet应用)
flet run --ios # iOS
flet run --android # Android
flet run --web # Web
运行完后,Web会自动打开网页,移动端设备请遵循 https://flet.dev/docs/guides/python/testing-on-ios 或 https://flet.dev/docs/guides/python/testing-on-android 继续下面的步骤
(仅理论,作者未成功编译过任何一个二进制包)
请提前安装好flutter的stable版本(3.2.6)
仅可用于macOS 确保你已经安装了brew
brew install cocoapods
flet build macos
编译后的二进制文件在build/macos
仅可用于Windows
flet build windows
编译后的二进制文件在build/windows
适用于Ubuntu
apt install libgtk-3-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
flet build linux
编译后的二进制文件在build/linux
仅可用于macOS
brew install autoconf automake libtool pkg-config
brew link libtool
brew install cocoapods
pip install git+https://github.com/flet-dev/python-for-ios.git
toolchain build matplotlib numpy scipy
export SERIOUS_PYTHON_IOS_DIST="`realpath dist`"
flet build ipa
编译后的二进制文件在build/ipa
(可用于macOS与Linux) 请参考 https://flet.dev/docs/guides/python/packaging-app-for-distribution/#android
(目前仅支持编译Windows,macOS与Linux平台)
- fork此项目
- 进入GitHub Acton
- 选择flet App Builder
- 点击标题下的build.yml
- 进入后编辑文件
- 更改
env
下的platform
- 选项有
windows
,macOS
,Linux
(未进行测试),iOS与Android正在编写
- 选项有
- 注意:编译后的macOS app在Apple Silicon上运行后如果numpy/scipy报错,请勾选使用Rosetta2运行