您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 计算机图形学课程设计报告
计算机图形学课程设计报告设计课题:专业班级:学号:学生姓名:指导教师:设计时间:2018.12.06中南林业科技大学涉外学院理工系计算机图形学课程设计任务书姓名:尹志刚专业:计算机科学与技术班级:16级3班指导教师:廖宁职称:课程设计题目:细脚怪已知技术参数和设计要求:所需仪器设备:成果验收形式:课程设计报告(纸质)程序运行效果图参考文献:时间安排指导教师:廖宁教研室主任:2018年12月06日注:本表下发学生一份,指导教师一份,栏目不够时请另附页。课程设计任务书装订于设计计算说明书(或论文)封面之后,目录页之前。目录一.设计目的……………………………………………………………二.设计要求……………………………………………………………1.构建基础类……………………………………………………2.构建直线类……………………………………………………3.构建变换类……………………………………………………4.构建填充类……………………………………………………5.构建光照类……………………………………………………三.开发环境…………………………………………………………四.详细设计五.源程序六.程序运行效果图七.总结设计目的培养对图形建模、变换、投影、消隐、光照原理的理解和应用。培养图形类的编程能力。培养计算机图形学应用软件开发的能力。设计要求深入研究计算机图形学的生成原理,设计算法实现具体的类。1.构建基础类实现CP2类绘制二维点;实现CP3类绘制三维点;实现CRGB类处理RGB颜色;实现CVector类处理矢量。2.构建直线类实现CLine类绘制任意斜率的直线、实现CALine类绘制任意斜率的反走样直线、实现CCLine类绘制任意斜率的颜色渐变直线、实现CACLine类绘制任意斜率的反走样颜色渐变直线。3.构建变换类实现CTransForm完成二维和三维图形变换。4.构建填充类实现CFill类使用有效边表算法填充多边形、实现CZBuffer类进行深度缓冲消隐,并使用Gouraud和Phong明暗处理填充图形面片。5.构建光照类实现CLight类设置点光源、实现CMaterial类设置物体材质、实现CLighting类对物体实施光照。开发环境ViusalC++6.0的MFC框架。详细设计1.利用函数Ellipse画出人物的脸,并用给脸填充颜色。再利用Ara画出人物的嘴巴。CRect确定人物的眼睛,给眼睛填充颜色。利用画笔画出人物的鼻子。2.添加ddaline()成员函数,编写自定义的成员函数ddaline()程序,编写OnDraw()函数,画出人物的脚和脚趾。3.添加星星star()成员函数,编写自定义的成员函数star()程序,确定五角星的位置、大小和颜色。4.添加五环circle()成员函数,并利用colorcircle()函数给五环上色。5.添加旗子flayA()、flayB()成员函数,确定旗杆的位置,用四点坐标设置旗子的范围,将星星和五环置于旗子中。源程序//Yzg20166989View.cpp:implementationoftheCYzg20166989Viewclass//#includestdafx.h#includeYzg20166989.h#includemath.h#includeYzg20166989Doc.h#includeYzg20166989View.h#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif///////////////////////////////////////////////////////////////////////////////CYzg20166989ViewIMPLEMENT_DYNCREATE(CYzg20166989View,CView)BEGIN_MESSAGE_MAP(CYzg20166989View,CView)//{{AFX_MSG_MAP(CYzg20166989View)//NOTE-theClassWizardwilladdandremovemappingmacroshere.//DONOTEDITwhatyouseeintheseblocksofgeneratedcode!//}}AFX_MSG_MAP//StandardprintingcommandsON_COMMAND(ID_FILE_PRINT,CView::OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT,CView::OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW,CView::OnFilePrintPreview)END_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////CYzg20166989Viewconstruction/destructionCYzg20166989View::CYzg20166989View(){//TODO:addconstructioncodehere}CYzg20166989View::~CYzg20166989View(){}BOOLCYzg20166989View::PreCreateWindow(CREATESTRUCT&cs){//TODO:ModifytheWindowclassorstylesherebymodifying//theCREATESTRUCTcsreturnCView::PreCreateWindow(cs);}///////////////////////////////////////////////////////////////////////////////CYzg20166989ViewdrawingvoidCYzg20166989View::OnDraw(CDC*pDC){CYzg20166989Doc*pDoc=GetDocument();ASSERT_VALID(pDoc);//TODO:adddrawcodefornativedatahereAfxGetMainWnd()-SetWindowText(20166989尹志刚);graph(pDC,0,0);CRectrect(200,120,430,350);CRectrect1(250,195,275,220);CRectrect2(355,195,380,220);CBrushnBrush(RGB(0,255,255)),*pOldnBrush;pOldnBrush=pDC-SelectObject(&nBrush);pDC-Ellipse(200,120,430,350);pDC-SelectObject(pOldnBrush);CBrushBrush(RGB(0,0,0)),*pOldBrush;pOldBrush=pDC-SelectObject(&Brush);pDC-RoundRect(rect1,CPoint(200,200));pDC-RoundRect(rect2,CPoint(200,200));pDC-SelectObject(pOldBrush);CBrushmBrush(RGB(255,255,0)),*pOldmBrush;pOldmBrush=pDC-SelectObject(&mBrush);pDC-Arc(250,275,380,355,295,285,335,285);pDC-SelectObject(pOldmBrush);CPointp1(305,295),p2(325,295);CPenPen,*pOldPen;Pen.CreatePen(PS_SOLID,3,RGB(0,0,0));pOldPen=pDC-SelectObject(&Pen);pDC-MoveTo(p1);pDC-LineTo(p2);pDC-SelectObject(pOldPen);pDC-SetTextColor(RGB(0,0,255));pDC-TextOut(225,20,同一个世界,同一个梦想);ddaline(pDC,225,305,225,450,RGB(255,0,0));ddaline(pDC,405,305,405,450,RGB(255,0,0));ddaline(pDC,225,450,225,460,RGB(0,0,0));ddaline(pDC,225,450,215,460,RGB(0,0,0));ddaline(pDC,225,450,235,460,RGB(0,0,0));ddaline(pDC,405,450,405,460,RGB(0,0,0));ddaline(pDC,405,450,395,460,RGB(0,0,0));ddaline(pDC,405,450,415,460,RGB(0,0,0));}///////////////////////////////////////////////////////////////////////////////CYzg20166989ViewprintingBOOLCYzg20166989View::OnPreparePrinting(CPrintInfo*pInfo){//defaultpreparationreturnDoPreparePrinting(pInfo);}voidCYzg20166989View::OnBeginPrinting(CDC*/*pDC*/,CPrintInfo*/*pInfo*/){//TODO:addextrainitializationbeforeprinting}voidCYzg20166989View::OnEndPrinting(CDC*/*pDC*/,CPrintInfo*/*pInfo*/){//TODO:addcleanupafterprinting}///////////////////////////////////////////////////////////////////////////////CYzg20166989Viewdiagnostics#ifdef_DEBUGvoidCYzg20166989View::AssertValid()const{CView::AssertValid();}voidCYzg20166989View::Dump(CDumpContext&dc)const{CView::Dump(dc);}CYzg20166989Doc*CYzg20166989View::GetDocument()//non-debugversionisinline{ASSERT(m_pDocument-IsKindOf(RUNTIME_CLASS(CYzg20166989Doc)));return(CYzg20166989Doc*)m_pDocument;}#endif//_DEBUG///////////////////////////////////////////////////////////////////////////////CYzg20166989ViewmessagehandlersvoidCYzg20166989View::ddaline(CDC*pDC,intx0,inty0,intx1,inty1,COLORREFcolor){intlength,i;doublex,y,dx,dy;length=abs(x1-x0);if(abs(y1-y0)length)length=abs(y1-y0);dx=(x1-x0)/length;dy=(y1-y0)/length;x=x0+0.5;y=y0+0.
本文标题:计算机图形学课程设计报告
链接地址:https://www.777doc.com/doc-1901494 .html