当前位置: 首页 > wzjs >正文

一键生成logo免费网站免费广告在线制作

一键生成logo免费网站,免费广告在线制作,广告制作公司口号,长沙网站建设开发用户界面系统 本次作业实现了随机化芯片设计方法中芯片的手动设计与芯片流速与浓度的关联计算与图形化显示,基于 Qt 设计了一个 Microfluidic Chip Simulation 用户界面系统。 具体功能 用户可以通过工具栏上的 Create 新建所需芯片,可自定义的参数包…

用户界面系统

本次作业实现了随机化芯片设计方法中芯片的手动设计与芯片流速与浓度的关联计算与图形化显示,基于 Qt 设计了一个 Microfluidic Chip Simulation 用户界面系统。

具体功能

  • 用户可以通过工具栏上的 Create 新建所需芯片,可自定义的参数包括:芯片大小、输入输出管道的位置
  • 用户可以在芯片界面单击芯片内某根管道,切换管道的开闭,进行直观的修改
  • 用户可以通过工具栏上的 Random 随机生成芯片
  • 用户可以通过工具栏上的 Config 自定义输入管道的流速、浓度,和随机生成芯片时每条管道被生成的概率
  • 用户可以通过工具栏上的 Switch 切换流速模式和浓度模式

交互界面及逻辑

本程序有着十分良好的交互界面及逻辑。

  • CreateConfig 在打开的时候所显示的为当前参数值,方便用户修改单个数据,而不是全部参数重新输入
  • 当用户修改了某项参数,主界面芯片自动实时计算修改后的芯片的流速和浓度,并显示三个输出口的流速和浓度
  • 当光标停留在某条管道上时,状态栏自动现实此管道的流速和浓度
  • 芯片的图形化界面中,管道的颜色会随着流速或浓度的大小变化,直观地展现芯片内各个管道的流速和浓度
  • 窗口标题会显示当前是流速模式还是浓度模式

代码设计

程序源文件组成如下:

  • main.cpp 主程序
    mainwindow.cpp/h 主窗口
    graphitem.cpp/h 2D 绘图元件
    createconfig.cpp/h Create 对话框
    config.cpp/h Config 对话框
    calculate.cpp/h 有关流速和浓度的计算算法

mainwindows.cpp/h

继承 QMainWindow 定义了 MainWindow 类,实现主窗口。

members:
Ui::MainWindow *ui; // 主窗口界面
QGraphicsScene *scene; // 2D 图形界面
GraphItem *pipeRow[7][8], *pipeCol[8][7], *cross[8][8], *pipeIn[8], *pipeOut[8]; // 管道和管道交界处的小方格的图形元件
QGraphicsTextItem *textitem[3]; // 输出口下方的文字显示图形元件
// 以及有关芯片的各种信息
public:
void sceneNew(); // 新建 QGraphicsScene 界面
void sceneDraw(); // 在 QGraphicsScene 界面上进行绘图
void updateCross(); // 更新芯片图内交点小正方形的显示状态和颜色
void updateText(); // 更新芯片图下方显示输出口信息的文字
void Simulation(); // 以当前芯片模拟液体流入
slots:
void on_actionCreate_triggered(); // 工具栏 Create 被触发
void on_actionRandom_triggered(); // 工具栏 Random 被触发
void on_actionConfig_triggered(); // 工具栏 Config 被触发
void on_actionSwitch_triggered(); // 工具栏 Switch 被触发
void create(int, bool*, bool*); // 接受从 Create 对话框返回的参数信息并新建芯片 
void updateConfig(int, int, int, int, int); // 接受从 Config 对话框返回的参数信息并更新芯片信息
void chipChanged(); // 芯片被修改后重新计算新的流速和浓度信息

graphitem.cpp/h

自定义 QGraphicsItem 类为 GraphItem,实现 2D 图形界面的绘图元件,为矩形元素(例如芯片图上的管道和管道交界处的方格)

members:
int x, y, width, height; // 矩形左上角坐标和矩形的长宽
bool Enable, NotChange; // 是否
double v = 0, c = 50;
signals:
void pipeChanged(); // 管道开闭状态改变,调用 MainWindow::chipChange
void hoverEnter(QString); // 光标进入矩形显示范围,调用 statusBar::showMessage(QString) 修改状态栏信息
void hoverLeave(); // 光标离开矩形显示范围,调用 statusBar::clearMessage() 清空状态栏
protected:
void mousePressEvent(QGraphicsSceneMouseEvent *event);
void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
void hoverLeaveEvent(QGraphicsSceneHoverEvent *event);

createconfig.cpp/h

定义 CreateConfig 类,继承 QDialog 类。

重载构造函数,要求构造时传入当前芯片的大小和输入输出口位置,并将对话框各项复选框切换成当前芯片的参数大小,方便用户修改单一的参数。

signals:
void finished(int,bool*,bool*); // 将新的参数传输给 MainWindow::create() 新建芯片
slots:
void on_sizeBox_currentIndexChanged(int index); // 当芯片大小修改时,将不在芯片大小范围内的输入输出口复选框的 enable 设为 false
void on_buttonBox_accepted(); // 当触发时,检查所选择的输入输出口数量是否符合限制,若不符合则弹出错误窗口,若符合则发送 finished 信号

config.cpp/h

定义 Config 类,继承 QDialog 类。

重载构造函数,要求构造时传入当前芯片参数,并将对话框各项复选框切换成当前芯片参数,方便用户修改单一的参数。

使用 QIntValidatorQLineEdit 控件进行整数范围的输入限制。

signals:
void finished(int, int, int, int, int); // 将新的参数传输给 MainWindow::updateConfig() 更新芯片

calculate.cpp

自行编写的流速和浓度的模拟算法。

流速模拟算法:将流速看做电流,每个交点的电势和输出口外的电势设为未知数,共

个;每个管道交叉处都满足入流总和等于出流总和,再加上输入流的大小限制,可得到

条方程,接着进行复杂度为

的高斯消元求解,最后再根据每个点的电势求地每条边的电流,也就是流速。

浓度模拟算法:先进行流速模拟,得到每条边的流向,接着针对管道交叉处的出入不同情况分类讨论,进行拓扑排序,即可得到每条管道的浓度。

vector<double> caluconspeed(...); // 模拟液体流动得到所有管道的流速
vector<double> calconcen(...); // 模拟液体流动得到所有管道的浓度

编写环境

IDE:Qt 5.0, SublimeText

System:Windows 10


文章转载自:

http://axr8po72.dpbgw.cn
http://axTz1bGg.dpbgw.cn
http://FuzGRJsj.dpbgw.cn
http://JJI74Tp8.dpbgw.cn
http://lFyRylIR.dpbgw.cn
http://v69y8Zjv.dpbgw.cn
http://nptJYmbi.dpbgw.cn
http://3mOfyGRL.dpbgw.cn
http://mVq0CIpJ.dpbgw.cn
http://YdMzdlgg.dpbgw.cn
http://CfiRom3v.dpbgw.cn
http://4bis094A.dpbgw.cn
http://EzEBz1Fv.dpbgw.cn
http://2gb85oIC.dpbgw.cn
http://W9SdFnRC.dpbgw.cn
http://5Mm82uEa.dpbgw.cn
http://LQBl0tJP.dpbgw.cn
http://Iwj8vRum.dpbgw.cn
http://M7NzfyyM.dpbgw.cn
http://FVJmBma4.dpbgw.cn
http://vz6ifHjT.dpbgw.cn
http://7z700Bvk.dpbgw.cn
http://VfsT9Wb8.dpbgw.cn
http://5qAHILYt.dpbgw.cn
http://H8BBiK9l.dpbgw.cn
http://5DKbzIyK.dpbgw.cn
http://ofgtAWrv.dpbgw.cn
http://dgRuRtS9.dpbgw.cn
http://zuW2kJdj.dpbgw.cn
http://nSJy7ZC4.dpbgw.cn
http://www.dtcms.com/wzjs/641335.html

相关文章:

  • 翻译类公司网站模板做网站有什么语言好
  • 海南住房和城乡建设厅网站登陆营销网站设计公司
  • 宁波网站建设价格合理商标设计图
  • 网站建设模型做网站用什么需要好
  • vs进行网站建设营销型网站的公司
  • 东莞高端商城网站建设工程项目立项流程
  • 目前网站开发技术阿里云centos7 搭建wordpress
  • 企业设计网站网页视频下载工具哪个好
  • 企业网站维护是指微信链接的微网站怎么做的
  • 柳江企业网站建设价格网络安全薪水一般多少
  • 合肥做网站的企业深圳网站设计 深圳市利
  • 5建网站南宁企业建站系统
  • 微网站官网做视频网站 视频放在哪里找
  • 如何提高网站吸引力驰业传媒网站建设
  • 科技公司网站设计服务企业形象设计案例
  • 常州 做网站营销策划方案设计的技巧
  • 唐山营销型网站建设网站平台搭建技术
  • wordpress换主题了百度seo是什么意思
  • 个人网站开发的论文html5手机编程软件
  • 龙华网站设计wordpress 提权
  • 电子商城网站建设项目规划书wordpress 国外主题
  • 做网站彩票代理多少钱啊自适应网站如何做移动适配
  • 有了ddns怎么建设网站阿里云自己做网站
  • 手表网站欧米茄官网宝付网络科技上海有限公司
  • 织梦网站系统wordpress文章设置仅会员可见
  • 网站系统模板中小企业网站建设平台
  • 做静态网站接单个人网站免费推广
  • 乔柘云智能建站工程公司排名
  • 建网站的网络公司葫芦岛做网站的公司
  • 软件网站建设专业网站发帖百度收录