已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
三维统计直方图应用程序设计一实验目的1掌握常用绘图函数的功能与用法2掌握Visual C+6.0绘图应用程序设计方法3 通过实例掌握画笔、画刷的使用方法4 了解GDI函数的功能与作用二实验任务分局下表所示数据设计应用程序,使该应用程序能采用直方图形式实现统计报表,并具有以下特点:(1) 统计直方图具有三维图形效果(2) 直方图不能占满整个窗口(3) 直方图相邻图的颜色互不相同优秀良好中等及格不及格人数18128636022856三实验指导1使用GDI绘图函数根据任务要求,本实验需要使用GDI绘图函数,通过GDI函数函数可以实现与设备无关的图形操作。这些函数可以在设备上绘制各种线条、图形、文本和位图,它们组成了Windows图形设备接口,即GDI。MFC类库将图形函数封装在CDC类中。2实验所涉及的GDI绘图工具(1)画笔(Pen):用于控制线条的属性,例如绘制直线、曲线、二维封闭平面图形的边界等。(2)画刷(Brush):用于控制二维图形区域的内部属性,例如绘制直方图时的矩形和平行四边形等。3 画笔的使用方法(1) 先定义新画笔对象,取代默认的画笔。(2) 创建并初始化画笔,即通过成员函数CreatePen等初始化画笔。对于画刷,则使用成员函数CreateHatchBrush等初始化画刷(3) 将自定义画笔选入设备环境,用指针变量保存默认的画笔。(4) 采用设备环境中的画图工具绘图。(5) 删除自定义画笔,恢复设备环境的默认画笔 具体使用绘图工具时,如果画笔或画刷已经初始化,则可以直接从初始化以后的步骤开始。画刷的使用与画笔的使用方法类似。1 使用向导生成3DDrawApp对话框应用程序单击文件|新建,然后进入如下界面,选择MFC AppWizardexe,在工程名称中输入3DDrawApp,点击确定。选择单文档,点击下一步点击下一步点击下一步点击下一步点击完成点击确定在项目工作区选择Class View,单击3DdrawApp类前的“+”号,显示出该类的全部成员函数,然后双击OnDraw成员函数,系统自动打开3DdrawApp.cpp文件,并定位在函数OnDraw的起始处。在成员函数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; /条图侧面平行四边形宽度或顶端平行四边高度 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); /将画笔选入设备环境并保存系统画笔 for(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); /绘制条图侧面平行四边形 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!=y0&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-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云南省昆明市禄劝县一中2026届化学高一第一学期期末学业水平测试模拟试题含解析
- 广东省第二师范学院番禺附属中学2026届高二化学第一学期期中联考试题含解析
- 河北省遵化市堡子店中学2026届化学高三第一学期期中质量检测模拟试题含解析
- 2025浙江永嘉县招聘定向派遣制员工笔试历年常考点试题专练附带答案详解试卷3套
- 江苏常熟市张桥中学2025-2026学年高一物理第一学期期末学业质量监测试题含解析
- 2026届吉林省白城市一中高二上物理期末联考模拟试题含解析
- 河北省秦皇岛市卢龙中学2023年高二物理第一学期期末学业质量监测试题含解析
- 2026届山东省菏泽、烟台高二上物理期末达标测试试题含解析
- 2025年黑龙江哈尔滨市省实验中学高一上化学期中监测试题含解析
- 广东省深圳市龙岗区东升学校2025-2026学年数学高一上期末教学质量检测模拟试题含解析
- 医院危险品培训课件
- 2025中国标准化研究院服务标准化研究所智能服务标准化研究岗企业编制职工招聘1人考试参考试题及答案解析
- DB6108T 100-2024 一般工业固体废物矿坑回填修复治理技术规范
- 车载氛围灯培训课件
- 硬笔书法作品临摹课件
- (正式版)DB15∕T 389-2021 《内蒙古自治区造林技术规程》
- 化工厂基础知识培训课件
- 预防企业犯罪课件讲稿
- 河网水系分级管理办法
- 学堂在线 军事理论 章节测试答案
- 2025至2030全球及中国互联网浏览器行业产业运行态势及投资规划深度研究报告
评论
0/150
提交评论