参考vc6绘制机器人结构简图Word文档格式.docx
《参考vc6绘制机器人结构简图Word文档格式.docx》由会员分享,可在线阅读,更多相关《参考vc6绘制机器人结构简图Word文档格式.docx(17页珍藏版)》请在冰点文库上搜索。
图4
(5)在没有任何代码编写或者界面调整的情况下,程序执行界面如图5所示。
图5
(6)在图4的窗口中,对对话框进行编辑,拖动窗口大小,添加或删除界面上的控件,如图6所示,删除了界面上的文字描述和“取消”按钮,在右侧控件栏中,选择箭头指示的“GroupBox”,按住鼠标左键拖入窗口。
图6
(7)删除“GroupBox”文字的方法是,右键点击“GroupBox”,在弹出菜单中,选择“Properties”,弹出属性设置窗口,ID可以采用默认,清空(或者修改标题值)。
图7
(8)与步骤7操作类似,将控件“Statictext”拖入窗口区域,删除文字并调整大小,作为绘图区域,不同之处是将控件的ID重新定义为其他值,如“IDC_DRAW”。
图8
(9)添加程序代码,在左侧分页栏中,选择“ClassView”,点击树形列表展开,双击“CDrawRobotDlg”类的名称,右侧主窗口中显示类对应的头文件“DrawRobotDlg.h”,窗口顶部显示文件名称。
图9
(10)在右侧头文件中的“CDrawRobotDlg”类中的“Public”区域,添加两个成员变量CWnd*pWnd;
CDC*pDC;
如图10所示。
图10
(11)在左侧分页栏中的树形列表中,双击“CDrawRobotDlg”类的成员函数“OnInitDialog”,右侧主窗口中显示类对应的头文件“DrawRobotDlg.cpp”,并且光标停留在函数“BOOLCDrawRobotDlg:
:
OnInitDialog()”处,在函数返回值之前添加pWnd=GetDlgItem(IDC_DRAW);
pDC=pWnd->
GetDC();
两行代码,如图11所示。
图11
(12)在左侧分页栏中的树形列表中,双击“CDrawRobotDlg”类的成员函数“OnPaint”,右侧主窗口中显示类对应的头文件“DrawRobotDlg.cpp”,并且光标停留在函数“voidCDrawRobotDlg:
OnPaint()”处,在函数结束之前添加pWnd->
Invalidate();
pWnd->
UpdateWindow();
pDC->
Rectangle(0,0,400,400);
两行代码,如图12所示。
图12
(13)参考步骤4中的操作,编译并运行程序,得到如图13所示的窗口,默认为白色背景、黑色边框,通过Rectangle函数的参数可以修改绘图区域的大小。
图13
(14)如需修改绘图区域的颜色,可以在程序添加画笔和画刷。
参考步骤10,在右侧头文件中的“CDrawRobotDlg”类中的“Public”区域,添加两个成员变量CPenRedPen;
CBrushYellowBrush;
如图14所示。
图14
(15)参考步骤11,在“OnInitDialog”函数中,对画刷和画笔变量进行初始化,添加两行代码,如图15所示,画笔初始化为红色,画刷初始化为黄色。
图15
(16)参考步骤12,在“pDC->
”绘制矩形区域之前,选择画刷和画笔,添加代码,如图16所示。
图16
(17)参考步骤4中的操作,编译并运行程序,得到如图17所示的窗口,绘制矩形区域的边框和背景发生了变化,后续程序中绘制矩形区域采用默认的画刷和画笔,因此将步骤16中添加的代码注释掉。
图17
(18)添加绘图函数,在左侧分页栏中的树形列表中,右键点击“CDrawRobotDlg”类的名称,弹出图18所示的菜单,选择“AddMemberFunction”,弹出如图19所示的窗口。
图18
(19)在窗口中输入函数的类型和函数名称,该函数“DrawRobotBase”用于绘制机器人的固定底座部分。
图19
(20)点击图19中的OK按钮后,“DrawRobotBase”函数自动添加到工程文件中,如图20所示。
图20
(21)在右侧主窗口的函数中输入绘图代码:
CPen*oldPen;
oldPen=pDC->
SelectObject(&
RedPen);
//选择红色画笔,注意修改画笔宽度
MoveTo(125,350);
LineTo(275,350);
SelectObject(oldPen);
绘制一条长度为150的粗直线,如图21所示。
图21
(22)在OnPaint函数中调用DrawRobotBase()函数,函数调用位置如图22所示。
图22
(23)编译运行程序,如图23所示。
图23
(24)参考步骤18和19添加函数“DrawRobotMemberBar1”,在函数中添加绘制杆1的代码,杆的长度为75,如图24所示。
MoveTo(200,350);
LineTo(200,350-75);
图24
(25)参照步骤22,也需要在OnPaint函数中,调用DrawRobotMemberBar1函数,编译运行程序后如图25所示。
图25
(26)参考步骤18和19添加函数“DrawRobotMemberBar2”,函数与DrawRobotMemberBar1不同,需要角度参数,如图26所示。
图26
(27)在DrawRobotMemberBar2函数中添加代码:
MoveTo(200,350-75);
LineTo(200+180*cos(angle*3.1415926/180),350-75-180*sin(angle*3.1415926/180));
如图27所示。
图27
(28)参照步骤22,也需要在OnPaint函数中,调用DrawRobotMemberBar2函数,将旋转角度值设定为30度,编译,运行程序,下方会提示编译错误信息,原因是由于使用数学函数,需要在“DrawRobotDlg.cpp”中,添加头文件“math.h”,如29所示,重新编译运行如图30所示。
图28
图29
图30
(29)添加输入交互,将控件工具栏中的statictext和editbox控件,将statictext的标题修改为“关节角度:
”,参考步骤7,修改editbox的ID为“IDC_EDIT_Angle”,如图31所示。
图31
(30)为Editbox绑定一个float类型的变量,鼠标右键点击edit编辑框,在弹出的菜单中选择“ClassWizard”,弹出如图32所示的窗口。
图32
(31)点击第二个标签页“MemberVariables”,如图33所示,选择Edit对应的ID,并点击“AddVariable”按钮,弹出如图34所示的窗口,选择变量类型为float,并输入变量名称为m_fAngle,点击OK按钮保存。
图33
图34
(32)在左侧分页栏中,选择“ClassView”,点击树形列表展开,在列表中可以看到,刚刚添加的变量m_fAngle,如图35所示。
图35
(33)在OnPaint函数中,将调用DrawRobotMemberBar2的函数参数换为m_fAngle,如图36所示。
图36
(34)将按钮控件拖入窗口,并修改按钮ID和标题,如图37所示,双击按钮弹出图38所示的窗口,点击OK按钮,自动为按钮添加函数。
图37
图38
(35)如图39所示,红色框中为按钮对应消息函数,在函数中添加代码:
UpdateData(TRUE);
Invalidate(FALSE);
图39
以上介绍,采用VC6.0绘制部分机械手的结构简图的方法,可以在此基础上,将程序中用的数据进行参数化处理,并增加自由度个数,计算末端点的位置坐标,将机械手进行平移等操作。