计算机图形学上机实验2-交互实现多边形绘画并填充

上传人:F****n 文档编号:99699141 上传时间:2019-09-20 格式:DOC 页数:7 大小:79KB
返回 下载 相关 举报
计算机图形学上机实验2-交互实现多边形绘画并填充_第1页
第1页 / 共7页
计算机图形学上机实验2-交互实现多边形绘画并填充_第2页
第2页 / 共7页
计算机图形学上机实验2-交互实现多边形绘画并填充_第3页
第3页 / 共7页
计算机图形学上机实验2-交互实现多边形绘画并填充_第4页
第4页 / 共7页
计算机图形学上机实验2-交互实现多边形绘画并填充_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《计算机图形学上机实验2-交互实现多边形绘画并填充》由会员分享,可在线阅读,更多相关《计算机图形学上机实验2-交互实现多边形绘画并填充(7页珍藏版)》请在金锄头文库上搜索。

1、昆 明 理 工 大 学 理 学 院信息与计算科学专业 操作性实验报告年级: 10级 姓名: 刘陈 学号: 8 指导教师: 胡杰 实验课程名称: 计算机图形学程序设计 开课实验室: 理学院机房216 实验成绩:学风(5)观察能力(15)操作能力(30)调试能力(50)其它总分实验内容:1实验/作业题目:用计算机高级语言VC+6.0实现计算机的基本图元绘制2实验/作业课时:2学时 3实验过程(包括实验环境、实验内容的描述、完成实验要求的知识或技能): 实验环境:(1)硬件:每人一 台PC机 (2)软件:windows OS,VC+6.0或以上版本。 试验内容及步骤: (1)在VC+环境下创建MFC

2、应用程序工程(单文档) (2)编辑菜单资源 (3)添加菜单命令消息处理函数 (4)添加成员函数 (5)编写函数内容试验要求 (1)试验前自习课本第2章内容,编写相关程序。 建立一VC+单文档工程,在菜单项中建立图形绘图菜单(包括绘制直线、折线、矩形、(椭)圆、多边形)和区域填充菜单项。 (2)实现对(椭)圆和多边形的填充。 (3)试验中调试、完善所编程序,能正确运行出设计要求结果。 (4)书写试验报告上交。4程序结构(程序中的函数调用关系图)用多边形扫描填充算法添加消息处理函数实现绘图实现交互式5算法描述、流程图或操作步骤:在lab2View.h文件中的public内添加变量 CPoint v

3、30;int index;bool first;bool move;在lab2View.cpp文件中的函数CLab2View:CLab2View()下添加如下代码:index = 1; /定义工作区 first = true; move = false;添加对应于鼠标消息WM_LBUTTONDDlClK的消息处理函数OnLButtonDblClk();并在其中添加如下代码:CClientDC dc(this);dc.MoveTo(vindex);dc.LineTo(v0);CPen MyPen,*OldPen; / 颜色填充MyPen.CreatePen(PS_SOLID,1,RGB(0,0,

4、255);OldPen=dc.SelectObject(&MyPen);CBrush MyBrush,*OldBrush;MyBrush.CreateSolidBrush(RGB(0,255,0);OldBrush=dc.SelectObject(&MyBrush);/dc.SelectStockObject(GRAY_BRUSH);dc.Polygon(v,index+1);first = true;move = false;index = 1;添加对应于鼠标消息WM_LBUTTONDOWN的消息处理函数OnLButtonDown();并在其中添加如下代码:CClientDC dc(this

5、); if (first) v0 = v1 = point;first = false; else v+index = point;if (index=30)MessageBox(数组 CPoint v30 下标越界!a);return; dc.MoveTo(vindex-1);dc.LineTo(vindex);添加对应于鼠标消息WM_LBUTTONUP的消息处理函数OnLButtonUp();并在其中添加如下代码:CClientDC dc(this);dc.MoveTo(vindex-1);dc.LineTo(vindex);if (!move)first = true;添加对应于鼠标消息

6、WM_ MOUSEMOVE的消息处理函数OnMouseMove ();并在其中添加如下代码:CClientDC dc(this); if (nFlags = MK_LBUTTON) move = true;dc.SetROP2(R2_NOTXORPEN);dc.MoveTo(vindex-1);dc.LineTo(vindex);vindex = point;dc.MoveTo(vindex-1);dc.LineTo(vindex);添加菜单项ID_ Fillcolor的消息映射函数添加任何代码:CClientDC dc(this); /自动生成多边形并填充 CPen MyPen,*OldPe

7、n;MyPen.CreatePen(PS_SOLID,1,RGB(0,0,255);OldPen=dc.SelectObject(&MyPen);CBrush MyBrush,*OldBrush;MyBrush.CreateSolidBrush(RGB(100,55,150);OldBrush=dc.SelectObject(&MyBrush);CPoint p4;p0.x=100;p0.y=200;p1.x=250;p1.y=150;p2.x=200;p2.y=300;p3.x=400;p3.y=350; dc.Polygon(p,4);6实验数据和实验结果(用屏幕图形表示,可另加附页):打开Dubug内lab2.exe点击菜单栏“多边形绘画及填充”,在工作区绘画多边形,画好后双击左键便完成填充了。还有另加一个自动绘画多边形并填充的选项。结果如下:7改进建议: 虽然可以用不同颜色填充,但要在源码理改,太麻烦,希望能实现在菜单栏加入颜色选项,可以方便用多种颜色填充,并改进多边形最后一条边实现封闭问题。评分标准 学 风-报告格式规范,文字清晰 观察能力-正确描述和理解需要操作的问题操作能力-正确输入程序,熟悉编程环境 调试能力-熟练使用调试功能解决程序错误第7页

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

当前位置:首页 > 办公文档 > 教学/培训

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