# QT实现简单函数绘图 **Repository Path**: yuexingqin/funcPlot ## Basic Information - **Project Name**: QT实现简单函数绘图 - **Description**: Qt实现的简单函数绘图 思路仅供参考 - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 3 - **Created**: 2022-03-17 - **Last Updated**: 2024-03-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 简介 一个简易的函数绘图器 ,目前仅仅支持一元方程,图形界面使用qt. 界面如下图。 ![image-20220318202138471](img/image-20220318202138471.png) ![image-20220318202256587](img/image-20220318202256587.png) ![image-20220318213313029](img/image-20220318213313029.png) ## 存在的问题: 1. 输入方式太过麻烦 2. 支持的函数太少 3. 界面操作不灵活 但是 **提供思路足够了**,等心情好了,一天事件 重写函数解析,和用户输入。 ## 功能 - [x] 图像放大与缩小 - [x] 图像移动 - [x] 一元函数 - [x] 自定义函数样式 - [ ] 方程组 - [ ] 缩略图 打包好的程序:https://www.aliyundrive.com/s/wjL2CY67EKn # 思路 ## 表达式解析 这里使用 逆波兰表达式计算法,参考连接如下:https://www.jianshu.com/p/c485ea098151 sin cos 等函数作为一个一元操作符来处理,优先级如下: `+- < */ < sin < ^` ## 结构设计 ![image-20220318215107636](img/image-20220318215107636.png) 用户输入表达式后 ,先将表达式转为后缀表达式,然后开启一个线程计算样本点,后面采用Lineto moveto的方式将绘制出来。 其实还可与改进,在用户输入完成的时候 ,开启新的线程 将 图像画在缓冲区中,后面等比的绘制在画板上即可。 ![image-20220318220710498](img/image-20220318220710498.png)