手把手教你建立绘制圆形的MFC项目


0.说明

第一次接触的朋友通过实践此教程可以初步掌握建立MFC项目绘制基本图形的方法,本教程实现了正真意义上的手把手教,所以有些繁琐,但对于初学者来说是件好事。

先学会建立项目,在学会搭建自己想要的界面,最后是算法设计与实现

本教程重心在于前两步,先一步一步做出个可运行的壳出来,这对我们继续学习会有更大的信心与成就感哟

建议渴望快速掌握的你拿起电脑,一步一步跟着做,效果会更好哟,我会将原项目代码上传到CSDN博客【我的资源】,需要的朋友可以自行下载

本教程借用绘制圆形来展示操作流程,达到的效果如下图所示

1)主界面
图1

2)点击【圆的绘制】-》弹出子菜单【中点Bresenham算法】-》弹出对话框
在这里插入图片描述

3)输入200,得到圆形
在这里插入图片描述

1.建立项目

1)在Windows10操作系统下打开VC++6.0,单击菜单【File】->单击【New】(如下图所示)
在这里插入图片描述

2)此时会弹出【New】对话框,单击选择【MFC AppWizard (exe)】->在【Project Name:】的下方填上你想要的项目名称,本例子使用【MbCircle】作为项目名(如图所示)
在这里插入图片描述

3)单击【OK】会弹出对话框,单击【Finish】再次弹出对话框,单击【OK】,项目建立成功(成功建立界面如下图所示)
在这里插入图片描述
4)设置项目版本,单击【Build】->【Set Active Configuration】,单击【MbCircle -Win32 Release】,单击【OK】,(如下2张图所示)
在这里插入图片描述
在这里插入图片描述

5)按【Ctrl+F5】运行项目,这是MFC框架为你自动生成的界面(如下所示),接下来只需要修改相应类即可

在这里插入图片描述

2.建立需要的对话框

1)单击界面左侧的【ResourceView】->右击文件夹【Dialog】->单击【Insert Dialog】,结果如下所示
在这里插入图片描述

2)拖拽悬浮框中的部件,设计需要的对话框,拖拽一个【Static Text】(图标是【Aa】),再拖一个【Edit Box】(图标是【ab|】)

在这里插入图片描述
3)右键【Static】->单击【Properties】->修改【Caption】,如下所示
在这里插入图片描述

4)为对话框建立相应的类:双击对话框任意位置,会弹出对话框,点击【OK】,会弹出【New Class】对话框,修改【Name】,效果如下,单击【Ok】即可
在这里插入图片描述

5)建立对话框与对话框类的变量对应:单击【View】->【MFC ClassWizard】->【Member Variables】->双击【IDC_EDIT1】->修改【Member variable name】与【Variable type】,如下所示,然后一路【OK】即可
在这里插入图片描述

3.添加运行界面的菜单选项

1)单击【ResourceView】->双击文件夹【Menu】->双击【IDR_MBCIRTYPE】->双击菜单栏虚线框->修改【Caption】,效果如下

在这里插入图片描述
2)单击【圆的绘制】->双击其子菜单的虚线矩形框->修改【ID】,【Caption】,效果如下
在这里插入图片描述

4.建立消息映射

1)单击【View】->【MFC ClassWizard】->【Message Map】。依次选择框【Class name】,【Object IDs】,【Messages】中的内容(一定按顺序, 选择内容如下)
在这里插入图片描述

2)单击【Add Function】->单击【OK】->单击【Edit Code】编辑函数
在这里插入图片描述

3)单击【FileView】->【SourceFiles】->【MbCircleView.cpp】->添加头文件【InputDlg.h】
在该cpp文件找到【OnMENUITEMMBCircle()】函数,初步编辑,添加内容如下

void CMbCircleView::OnMENUITEMMBCircle()
{
	// TODO: Add your command handler code here
	InputDlg dlg;//定义输入框对象
	dlg.DoModal();//该函数是对话框显示
}

4)运行项目-》单击菜单【圆的绘制】-》【中点Bresenham算法】-》若是弹出对话框效果如下,说明你到目前为止操作正确。到此,关于界面设计全部完成,接下来是算法设计

在这里插入图片描述

5.算法设计

该教程重心在让人掌握MFC界面设计,算法不是此教程重点(可直接复制)
本例采用“中点Bresenham算法”

1)步骤如下
1.输入圆的半径R。
2.计算初始值d=1-R、x=0、y=R。
3.绘制点(x,y)及其在八分圆中的另外七个对称点。
4.判断d的符号。若d<0,则先将d更新为d+2x+3,再将(x,y)更新为(x+1,y);否则先将d更新为d+2(x-y)+5,再将(x,y)更新为(x+1,y-1)。
5.当x<y时,重复步骤3和4。否则结束。

2)在【MbCircleView.h】中添加保护型对象
在这里插入图片描述
同时添加公有函数

在这里插入图片描述
3)在【MbCircleView.cpp】完善函数
添加宏定义与相应头文件,该头文件若是之前添加过就不必再次添加
在这里插入图片描述
完善getMaxX(),getMaxY()
在这里插入图片描述
完善circlePoint(double x,double y)
在这里插入图片描述
完善MbCircle()
在这里插入图片描述
修改完善OnMENUITEMMBCircle
在这里插入图片描述

6.运行测试

运行项目,输入半径200,效果如下

在这里插入图片描述


初次使用一个软件,是最痛苦的了,跟着例子做,完全一样,还是无法运行,所以以后每次学习新的案例时,先把源码跑一遍,可以运行的话,再上手实践一遍,这样不会打击自信心,效率也高。

为了不让其他人也把时间浪费在简单的界面设计与项目搭建上,特地写了这篇博客,希望能帮到你

  • 30
    点赞
  • 110
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
建立永磁同步电机(PMSM)闭环系统的建模需要考虑电机的动态和控制器的设计,并进行参数的估计和校准。以下是一个手把手建立PMSM闭环系统建模的步骤: 1. 确定系统的目标和需求,并选择合适的电机和控制器类型。PMSM是一种高效、高功率密度的电机,常用于需求较高的应用。选择适合的控制策略,如基于矢量控制的闭环控制。 2. 收集电机的参数,并进行理论分析和仿真验证。确定电机的电感L、电阻R、永磁磁动势系数及机械转动惯量等参数,可以通过实验、测量或数据手册获得。 3. 建立电机动态模型。根据电机方程及控制器的设计方,可以建立电机的数学模型。在PMSM的闭环系统中,常用的模型包括dq轴模型、飞轮惯性模型等。对于dq轴模型,可以通过转子位置解耦得到dq电流方程,并根据控制器策略设计转矩环与电流环的控制器。 4. 进行参数的估计与校准。在实际应用中,电机的参数可能会受到温度、湿度等环境因素的影响,需进行参数估计和校准。可以通过多种方如模型参考自适应控制、最小二乘等来实现参数的在线估计与校准。 5. 进行闭环控制器的设计。根据模型的结果,设计闭环控制器来满足系统的性能指标,如转速跟踪精度、转矩响应等。根据经验和理论分析来设计控制器的参数,如比例增益、积分时间等。 6. 进行仿真验证和实验测试。使用Matlab等软件进行系统仿真验证,通过改变输入信号来观察系统的响应情况。根据仿真结果进行参数调整,直到满足性能要求。然后进行实验测试来进一步验证建模和设计的正确性。 总之,建立PMSM闭环系统的建模需要对电机和控制器进行合理选择、参数估计与校准,并进行闭环控制器的设计和验证。这些步骤都需要理论分析、仿真验证和实验测试来完成,通过逐步优化和调整,最终建立可靠且具有良好性能的PMSM闭环系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值