计算机图形学上机实验(09).doc

计算机图形学上机实验(09).doc

ID:59493043

大小:47.50 KB

页数:10页

时间:2020-11-03

计算机图形学上机实验(09).doc_第1页
计算机图形学上机实验(09).doc_第2页
计算机图形学上机实验(09).doc_第3页
计算机图形学上机实验(09).doc_第4页
计算机图形学上机实验(09).doc_第5页
资源描述:

《计算机图形学上机实验(09).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、计算机图形学上机实验齐金山淮阴师范学院(江苏)计算机科学与技术学院计算机图形学上机说明《计算机图形学》是计算机科学与技术专业本科的一门专业课程,课程的上机实践性环节是学生学习的重点和难点。通过本实验,使学生掌握计算机图形学的基本原理、方法和相关的软硬件知识,掌握计算机图形学编程的基本方法,为学生进一步学习图形学及其他相关学科打下坚实的基础。要求掌握计算机图形学的基本原理、算法与应用;学会用相关算法编程显示基本图形。本次共有4次上机实验,涉及到计算机基本图形的生成算法、扫描填充算法、裁剪算法、几何变换和曲线等内容。学生平时也可以去了解三维图形建模技术(曲面、体模型)、

2、OpenGL、光照  消隐、三维技术(模型显示、光照、雾化、交互)等知识。4次上机实验成果要求提交源代码?!实验一基本2D图形生成一、实验目的1.掌握基于MFC图形编程框架的搭建。2.掌握直线和圆等图形扫描转换的原理及常用算法。二、实验内容基本2D图形生成:1.直线生成算法2.多边形生成算法3.圆生成算法4.MFC图形编程框架三、实验步骤实验二基本2D图形填充算法和坐标变换一、实验目的1.掌握扫描线多边形填充算法、种子填充算法等的基本原理和计算机实现填充功能。2.掌握在齐次坐标系中进行二维基本线性变换(平移、比例、旋转、错切)的原理、性质、表示方法及应用。二、实验内

3、容多边形填充算法、种子填充算法二维基本线性变换(平移、比例、旋转、错切等)三、实验步骤1、创建应用程序框架,本例以单文档框架为例。2、编辑菜单资源在工作区的【ResourceView】标签中,单击Menu项左边的“+”,然后双击其子项IDR_MAINFRAME,并根据下图和下图添加编辑菜单资源。菜单标题菜单项标题标识符ID区域填充种子填充算法ID_FLOODFILL边界填充算法ID_BOUNDARY扫描线多边形填充算法ID_SCANLINEFILL3、添加菜单项消息处理函数利用ClassWizard(建立类向导)为应用程序添加与菜单项相关的消息处理函数,ClassN

4、ame栏中选择CmyView,根据下表建立如下的消息映射函数,ClassWizard会自动生成有关的函数声明。菜单项ID消息消息处理函数ID_FLOODFILLCOMMANDOnFloodfillID_BOUNDARYCOMMANDOnBoundaryID_SCANLINEFILLCOMMANDOnScanlinefill4、添加程序代码Ø在OnDraw()函数中添加如下蓝色字体部分代码。voidCMyView::OnDraw(CDC*pDC){CMyDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);//TODO:adddrawco

5、defornativedataherepDC->TextOut(20,20,"双击鼠标左键,出现需填充的多边形,点击相关功能菜单实现区域填充");pDC->TextOut(20,50,"进行种子填充,需用鼠标右键,单击多边形内一点,作为开始填充的种子点");}Ø添加鼠标消息处理函数:利用ClassWizard(建立类向导)为应用程序添加与鼠标相关的消息处理函数,ClassName栏中选择CmyView,根据下表建立如下的鼠标消息映射函数,ClassWizard会自动生成有关的函数声明。ObjectIDs消息消息处理函数CmyViewWM_LBUTTONDBLCLKO

6、nLButtonDblClkWM_RBUTTONDOWNOnRButtonDown分别给鼠标消息映射函数添加如下代码:voidCMyView::OnLButtonDblClk(UINTnFlags,CPointpoint){//TODO:Addyourmessagehandlercodehereand/orcalldefaultRedrawWindow();CDC*pDC=GetDC();CPennewpen(PS_SOLID,1,RGB(255,0,0));CPen*old=pDC->SelectObject(&newpen);pDC->Rectangle(100

7、,100,200,200);pDC->SelectObject(old);ReleaseDC(pDC);CView::OnLButtonDblClk(nFlags,point);}voidCMyView::OnRButtonDown(UINTnFlags,CPointpoint){//TODO:Addyourmessagehandlercodehereand/orcalldefaulta_point=point;//a_point为点类对象,表示种子点,定义为CmyView类的数据成员。CView::OnRButtonDown(nFlags,point);}Ø给

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。