三维统计直方图应用程序设计详细步骤图示

上传人:桔**** 文档编号:489588683 上传时间:2023-08-05 格式:DOC 页数:9 大小:9.30MB
返回 下载 相关 举报
三维统计直方图应用程序设计详细步骤图示_第1页
第1页 / 共9页
三维统计直方图应用程序设计详细步骤图示_第2页
第2页 / 共9页
三维统计直方图应用程序设计详细步骤图示_第3页
第3页 / 共9页
三维统计直方图应用程序设计详细步骤图示_第4页
第4页 / 共9页
三维统计直方图应用程序设计详细步骤图示_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《三维统计直方图应用程序设计详细步骤图示》由会员分享,可在线阅读,更多相关《三维统计直方图应用程序设计详细步骤图示(9页珍藏版)》请在金锄头文库上搜索。

1、三维统计直方图应用程序设计一实验目的1掌握常用绘图函数的功能与用法2掌握Visual C+6.0绘图应用程序设计方法3 通过实例掌握画笔、画刷的使用方法4 了解GDI函数的功能与作用二实验任务分局下表所示数据设计应用程序,使该应用程序能采用直方图形式实现统计报表,并具有以下特点:(1) 统计直方图具有三维图形效果(2) 直方图不能占满整个窗口(3) 直方图相邻图的颜色互不相同优秀良好中等及格不及格人数18128636022856三实验指导1使用GDI绘图函数根据任务要求,本实验需要使用GDI绘图函数,通过GDI函数函数可以实现与设备无关的图形操作。这些函数可以在设备上绘制各种线条、图形、文本和

2、位图,它们组成了Windows图形设备接口,即GDI。MFC类库将图形函数封装在CDC类中。2实验所涉及的GDI绘图工具(1)画笔(Pen):用于控制线条的属性,例如绘制直线、曲线、二维封闭平面图形的边界等。(2)画刷(Brush):用于控制二维图形区域的内部属性,例如绘制直方图时的矩形和平行四边形等。3 画笔的使用方法(1) 先定义新画笔对象,取代默认的画笔。(2) 创建并初始化画笔,即通过成员函数CreatePen等初始化画笔。对于画刷,则使用成员函数CreateHatchBrush等初始化画刷(3) 将自定义画笔选入设备环境,用指针变量保存默认的画笔。(4) 采用设备环境中的画图工具绘图

3、。(5) 删除自定义画笔,恢复设备环境的默认画笔 具体使用绘图工具时,如果画笔或画刷已经初始化,则可以直接从初始化以后的步骤开始。画刷的使用与画笔的使用方法类似。1 使用向导生成3DDrawApp对话框应用程序单击文件|新建,然后进入如下界面,选择MFC AppWizardexe,在工程名称中输入3DDrawApp,点击确定。选择单文档,点击下一步点击下一步点击下一步点击下一步点击完成点击确定在项目工作区选择Class View,单击3DdrawApp类前的“+”号,显示出该类的全部成员函数,然后双击OnDraw成员函数,系统自动打开3DdrawApp.cpp文件,并定位在函数OnDraw的起

4、始处。在成员函数OnDraw中添加如下代码:void CMy3DDrawAppView:OnDraw(CDC* pDC)CMy3DDrawAppDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data here const int x0=50,y0=10,x1=550,y1=400; const int N=5; /直方图数量 const int deltah=60; /等高线间隔 int delta_x=(x1-x0)/N; int h=delta_x/5; /条图侧面平行四边形宽度或

5、顶端平行四边高度 int sN=56,228,360,286,181; int i=0,x=0,y; CString str; CPoint p4; /四边形的四个顶点 CBrush brush; /定义画刷类对象 CPen pen,MyPen,*ptr_pen; /定义CPen类对象 srand(unsigned)time(NULL); MyPen.CreatePen(PS_SOLID,2,RGB(0,0,0); /创建新画笔 pDC-Rectangle(x0,y0,x1+h,y1); ptr_pen=pDC-SelectObject(&MyPen); /将画笔选入设备环境并保存系统画笔 f

6、or(i=0,x=x0;iSelectObject(&brush); /选入新画刷 pDC-Rectangle(x,y1-si,x+delta_x,y1); /绘制条图正面矩形 p0.x=x; p0.y=y1-si; p1.x=p0.x+delta_x; p1.y=p0.y; p2.x=p1.x+h; p2.y=p1.y-h; p3.x=p2.x-delta_x; p3.y=p2.y; pDC-Polygon(p,4); /绘制条图顶端平行四边形 p0.x=p1.x; p0.y=p1.y+si; p3.x=p1.x+h; p3.y=p0.y-h; pDC-Polygon(p,4); /绘制条图

7、侧面平行四边形 pDC-SelectStockObject(WHITE_BRUSH); /选入白色画刷 brush.DeleteObject(); /删除画刷 pDC-SelectObject(ptr_pen); /将所定义画笔选出设备环境,恢复系统画笔 pen.CreatePen(PS_DOT,1,RGB(0,0,0); /创建点线画笔,仅当画笔宽度为1时有效 ptr_pen=pDC-SelectObject(&pen); /将画笔选入设备环境并保存系统画笔 pDC-SetROP2(R2_MASKNOTPEN); for(i=0,y=y1;y=y0;i+,y-=deltah) if(y!=y

8、0&y!=y1) pDC-MoveTo(x0,y); pDC-LineTo(x1+h,y); str.Format(%3d,deltah*i); pDC-TextOut(10,y-8,str); /减8使纵坐标在等高线中间 for(i=0;iTextOut(x0+i*delta_x+(delta_x-str.GetLength()*8)/2,400-si/2-8,str); /减8使输出人数的数字在各条图的正中位置 pDC-SelectObject(ptr_pen); /将所定义画笔选出设备环境,恢复系统画笔 pen.DeleteObject(); /删除所定义画笔 pDC-TextOut(x0+delta_x/3,y1+4,不及格); pDC-TextOut(x0+delta_x*4/3,y1+4,及格); pDC-TextOut(x0+delta_x*7/3,y1+4,中等); pDC-TextOut(x0+delta_x*10/3,y1+4,良好); pDC-TextOut(x0+delta_x*13/3,y1+4,优秀); 四 实验参考结果点击图标进行编译,然后点击图标运行程序,获得如下结果:题目:写出本实验的实验目的、实验任务和实验步骤

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号