计算机图形学课程设计报告_第1页
计算机图形学课程设计报告_第2页
计算机图形学课程设计报告_第3页
计算机图形学课程设计报告_第4页
计算机图形学课程设计报告_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机图形学课程设计报告设计课题:专业班级:学号:学生姓名:指导教师:设计时间:2018、12、06ﻬ中南林业科技大学涉外学院理工系计算机图形学课程设计任务书姓名:尹志刚专业:计算机科学与技术班级:16级3班指导教师:廖宁职称:课程设计题目:细脚怪已知技术参数与设计要求:所需仪器设备:成果验收形式:课程设计报告(纸质)程序运行效果图参考文献:时间安排指导教师:廖宁教研室主任:2018年12月06日注:本表下发学生一份,指导教师一份,栏目不够时请另附页.课程设计任务书装订于设计计算说明书(或论文)封面之后,目录页之前。目录设计目得……………设计要求……………构建基础类……………………构建直线类……………………构建变换类……………………构建填充类……………………构建光照类……………………开发环境…………详细设计源程序程序运行效果图总结设计目得培养对图形建模、变换、投影、消隐、光照原理得理解与应用。培养图形类得编程能力。培养计算机图形学应用软件开发得能力。设计要求深入研究计算机图形学得生成原理,设计算法实现具体得类。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框架。详细设计利用函数Ellipse画出人物得脸,并用给脸填充颜色。再利用Ara画出人物得嘴巴。CRect确定人物得眼睛,给眼睛填充颜色。利用画笔画出人物得鼻子.添加ddaline()成员函数,编写自定义得成员函数ddaline()程序,编写OnDraw()函数,画出人物得脚与脚趾.添加星星star()成员函数,编写自定义得成员函数star()程序,确定五角星得位置、大小与颜色.添加五环circle()成员函数,并利用colorcircle()函数给五环上色.添加旗子flayA()、flayB()成员函数,确定旗杆得位置,用四点坐标设置旗子得范围,将星星与五环置于旗子中。源程序//Yzg20166989View、cpp:implementationoftheCYzg20166989Viewclass//#include”stdafx、h”#include”Yzg20166989、h"#include"math、h"#include”Yzg20166989Doc、h"#include"Yzg20166989View、h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_charTHIS_FILE[]=__FILE__;#endif///////////////////////////////////////////////////////////////////////////////CYzg20166989ViewIMPLEMENT_DYNCREATE(CYzg20166989View,CView)BEGIN_MESSAGE_MAP(CYzg20166989View,CView)ﻩ//{{AFX_MSG_MAP(CYzg20166989View)ﻩ //NOTE-theClassWizardwilladdandremovemappingmacroshere、 //DONOTEDITwhatyouseeintheseblocksofgeneratedcode!ﻩ//}}AFX_MSG_MAP //Standardprintingmands ON_MAND(ID_,CView::On) ON_MAND(ID_,CView::On)ﻩON_MAND(ID_,CView::On)END_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////CYzg20166989Viewconstruction/destructionCYzg20166989View::CYzg20166989View(){ﻩ//TODO:addconstructioncodehere}CYzg20166989View::~CYzg20166989View(){}BOOLCYzg20166989View::PreCreateWindow(CREATESTRUCT&cs){ //TODO:ModifytheWindowclassorstylesherebymodifying //theCREATESTRUCTcsﻩreturnCView::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){ﻩ//defaultpreparation returnDoPreparePrinting(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、5;ﻩfor(i=1;i〈=length;i++) { ﻩpDC->SetPixel((int)x,(int)y,color); x=x+dx;ﻩﻩy=y+dy;ﻩ}}voidCYzg20166989View::flagA(CDC*pDC,intx,inty){ CBrushﻩ redBrush(RGB(0xFF,0,0)), yellowBransh(RGB(0xFF,0xff,0)), woodBrash(RGB(180,180,180)),ﻩﻩ*oldBrush; oldBrush=pDC->SelectObject(&redBrush); pDC->Rectangle(x+20,y+0,x+140,y+70); pDC-〉SelectObject(&woodBrash);ﻩpDC-〉Rectangle(x+15,y+0,x+20,y+100); pDC—>SelectObject(&yellowBransh);ﻩpDC—>SetPolyFillMode(WINDING); star(pDC,x+40,y+20,10); star(pDC,x+60,y+13,6); star(pDC,x+62,y+30,6);ﻩstar(pDC,x+55,y+43,6);ﻩstar(pDC,x+40,y+48,6); pDC—>SelectObject(oldBrush);}voidCYzg20166989View::flagB(CDC*pDC,intx,inty){ CBrush woodBrash(RGB(180,180,180)),ﻩﻩ*oldBrush;ﻩpDC->Rectangle(x+85,y+0,x+205,y+70); oldBrush=pDC—>SelectObject(&woodBrash); pDC—〉Rectangle(x+205,y+0,x+210,y+100); pDC-〉SelectObject(oldBrush); CPenﻩﻩp1(PS_SOLID,2,RGB(0x09,0x51,0xA0)), ﻩp2(PS_SOLID,2,RGB(0x05,0x05,0x05)), ﻩp3(PS_SOLID,2,RGB(0xFE,0x01,0x00)), ﻩp4(PS_SOLID,2,RGB(0xFC,0xFD,0x04)), p5(PS_SOLID,2,RGB(0x30,0xA0,0x2D));ﻩcolorCircle(pDC,&p1,x+60+65,y+30,10);ﻩcolorCircle(pDC,&p2,x+82+65,y+30,10);ﻩcolorCircle(pDC,&p3,x+104+65,y+30,10); colorCircle(pDC,&p4,x+70+65,y+46,10);ﻩcolorCircle(pDC,&p5,x+92+65,y+46,10);}voidCYzg20166989View::star(CDC*pDC,intx,inty,intr){ﻩCPointstars[5]; constdoublePI=3、1415926;ﻩdoublealpha=PI/10; doublebeta=2*PI/5;ﻩfor(inti=0;i〈5;i++){ﻩﻩstars[i]、x=ceil(r*cos(i*beta+alpha))+x; stars[i]、y=ceil(r*sin(i*beta+alpha))+y; } CPointstarx[5]={

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论