ImageVerifierCode 换一换
格式:DOC , 页数:14 ,大小:224KB ,
资源ID:3048115      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-3048115.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(图形学期末论文.doc)为本站会员(ng****60)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

图形学期末论文.doc

1、计算机图形学实验报告实验名称: 菜单设计期末论文 课程名称: 计算机图形学 姓名: 学号: 专业班级: 日期: 2011.10.18 地点: 成绩: 地点: 计算机图形学实验报告 .11 实验目的 .31.1 学习 VC+菜单资源编辑器,菜单程序设计举例; .31.2 学习 Autocad 绘图的基本方法,了解常用的交互式技术; .31.3 学会区域填充; .31.4 学会颜色设置。 .32 实验内容 .3步骤 1: .3步骤 2: .3步骤 3: .4步骤 4:绘制直线 .4步骤 5:主要函数的设计 .45.1 加入成员变量 m_item,用于表示绘图选择项, .45.2 在构造函数中初始化

2、变量; .45.3 添加菜单驱动函数: .45.4 在 OnDraw()中不进行绘图,主要靠鼠标绘图。 55.5 鼠标左击和移动程序 .53 程序运行结果 .54 主要代码 .84.1 直线 .84.1.1 在 CMy_jhsView()中添加变量。 .84.1.2 在 OnDraw(CDC* pDC)中调用函数。 .84.1.3 DDAMouseLine 的定义 .84.2 圆 .94.2.1 在 CMy_jhsView()中添加变量。 .94.1.2 在 OnLButtonDown 中添加代码 .94.1.3 MidpointCircle 的定义 .94.3 椭圆 .104.3.1 在 C

3、My_jhsView()中添加变量。 .104.3.2 在 OnLButtonDown 中添加代码 .104.3.3 MidpointEllise 的定义 .114.4 区域填充 .124.4.1 在 CMy_jhsView()中添加变量。 .124.4.2 在 OnDraw(CDC* pDC)中调用函数。 .124.3.3 floodfill4 的定义 .124.5 颜色设置 .144.5.1 在 CMy_jhsView()中添加变量。 .144.5.2 Redraw 的定义 .145 实验心得 .141 实验目的了解常用的图形交互技术及实现方法,学习用户接口的程序设计。1.1 学习 VC+

4、菜单资源编辑器,菜单程序设计举例;1.2 学习 Autocad 绘图的基本方法,了解常用的交互式技术;1.3 学会区域填充;1.4 学会颜色设置。2 实验内容下面通过一个实例将绘图命令放在用户界面的菜单中,通过选择绘图命令来绘图。步骤 1:创建 jhs 应用程序工程文件,选择单文档应程序;步骤 2:利用 Resource View 设计菜单,如图 6-8 所示;图 6-8 菜单设计示例菜单 选项绘图( / 0:不绘图,1:直线,2:圆,3:椭圆,4:矩形;5.2 在构造函数中初始化变量;5.3 添加菜单驱动函数:方法是右击 CjhsView 类,选择消息映射函数(add window mess

5、age handler)。在弹出的对话框中的 class or object to handle 列表中选择 m_ine,按下“add and edit ”,并在弹出的对话框中输入菜单驱动函数的名字(OnMLine),按下 “确定 ”键。同理,建立画圆的菜单驱动程序OnMCircle。5.4 在 OnDraw()中不进行绘图,主要靠鼠标绘图。5.5 鼠标左击和移动程序3 程序运行结果a.直线b.交互式画圆c.交互式画椭圆d.区域填充e.颜色设置4 主要代码4.1 直线4.1.1 在 CMy_jhsView()中添加变量。/绘制直线m_p1.x=0; m_p1.y=0; /起点m_p2.x=0;

6、 m_p2.y=0; /终点m_ist=0; /0,第 1 点;1,第 2 点;4.1.2 在 OnDraw(CDC* pDC)中调用函数。if(m_item=1)pDC-SelectStockObject(NULL_BRUSH);DDAMouseLine(pDC,m_p1.x,m_p1.y,m_p2.x,m_p2.y,RGB(0,0,0); / 调用自定义的成员函数,用鼠标画直线4.1.3 DDAMouseLine 的定义void CMy_jhsView:DDAMouseLine(CDC *pDC, int x0, int y0, int x1, int y1, COLORREF color

7、)int length,i;float x,y,dx,dy;length=abs(x1-x0);if (abs(y1-y0)length)length=abs(y1-y0);dx=(float)(x1-x0)/length;dy=(float)(y1-y0)/length;x=x0+0.5;y=y0+0.5;for (i=1;iSetPixel(int)x,(int)y,color);x=x+dx;y=y+dy;/pDC-MoveTo(x0,y0);/pDC-LineTo(x1,y1);4.2 圆4.2.1 在 CMy_jhsView()中添加变量。/绘制圆m_bO.x=0; m_bO.y=0

8、; /圆心m_bR.x=0; m_bR.y=0; /圆上的点m_ist=0; /圆心与圆上的点区别m_r=0; /圆的半径4.1.2 在 OnLButtonDown 中添加代码if(m_item=2)CDC *pDC=GetDC();pDC-SelectStockObject(NULL_BRUSH);if (!m_ist) /绘制圆m_bO=m_bR=point; /纪录第一次单击鼠标位置,定圆心m_ist+;elsem_bR=point; /记录第二次单击鼠标的位置,定圆周上的点m_ist-; / 为新绘图作准备m_r=ComputeRadius(m_bO,m_bR);MidpointCir

9、cle(pDC,m_bO.x,m_bO.y,m_r,RGB(255,0,0);ReleaseDC(pDC); /释放设备环境4.1.3 MidpointCircle 的定义void CMy_jhsView:MidpointCircle(CDC *pDC, int x0, int y0, int r, COLORREF color)int x,y;float d;x=0;y=r;d=1.25-r;CirPot(pDC,x0,y0,x,y,color);while (xSetROP2(R2_NOT); /设置异或绘图模式,并保存原来绘图模式pDC-SelectStockObject(NULL_BR

10、USH);if(m_ist=1)CPoint prePnt,curPnt;prePnt=RightBottom; /获得鼠标所在的前一位置curPnt=point;/绘制橡皮筋线CenterPoint.x=(LeftTop.x+prePnt.x)/2;CenterPoint.y=(LeftTop.y+prePnt.y)/2;a=(int)abs(prePnt.x-LeftTop.x)/2;b=(int)abs(prePnt.y-LeftTop.y)/2;MidpointEllise(pDC,CenterPoint.x,CenterPoint.y,a,b,RGB(255,0,0);/用异或模式重

11、复画圆,擦出所画的圆/用当前点作为右下角点,画椭圆 CenterPoint.x=(LeftTop.x+curPnt.x)/2;CenterPoint.y=(LeftTop.y+curPnt.y)/2;a=(int)abs(curPnt.x-LeftTop.x)/2;b=(int)abs(curPnt.y-LeftTop.y)/2;MidpointEllise(pDC,CenterPoint.x,CenterPoint.y,a,b,RGB(255,0,0);/用当前位置作为圆周上的点画圆RightBottom=point;pDC-SetROP2(nDrawmode); /恢复原绘图模式ReleaseDC(pDC); /释放设备环境

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。