欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    计算机图形学专业课程设计方案报告.doc

    • 资源ID:97929045       资源大小:404.04KB        全文页数:20页
    • 资源格式: DOC        下载积分:6金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要6金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    计算机图形学专业课程设计方案报告.doc

    计算机图形学课程设计报告 设计课题: 专业班级: 学 号: 学生姓名: 指引教师: 设计时间: .12.06 中南林业科技大学涉外学院理工系 计算机图形学 课程设计任务书姓 名:尹志刚专 业:计算机科学与技术班 级:16级 3班指引教师:廖宁职 称:课程设计题目:细脚怪已知技术参数和设计规定:所需仪器设备:成果验收形式:课程设计报告(纸质) 程序运营效果图参照文献:时间安排指引教师: 廖宁 教研室主任: 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类对物体实行光照。开发环境 Viusal C+ 6.0MFC框架。详细设计1. 运用函数Ellipse画出人物脸,并用给脸填充颜色。再运用Ara画出人物嘴巴。CRect拟定人物眼睛,给眼睛填充颜色。运用画笔画出人物鼻子。2. 添加ddaline()成员函数,编写自定义成员函数ddaline()程序,编写OnDraw()函数,画出人物脚和脚趾。3. 添加星星star()成员函数,编写自定义成员函数star()程序,拟定五角星位置、大小和颜色。4. 添加五环circle()成员函数,并运用colorcircle()函数给五环上色。5. 添加旗子flayA()、flayB()成员函数,拟定旗杆位置,用四点坐标设立旗子范畴,将星星和五环置于旗子中。源程序 / Yzg6989View.cpp :implementation of the CYzg6989View class/#include "stdafx.h"#include "Yzg6989.h"#include "math.h"#include "Yzg6989Doc.h"#include "Yzg6989View.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CYzg6989ViewIMPLEMENT_DYNCREATE(CYzg6989View,CView)BEGIN_MESSAGE_MAP(CYzg6989View,CView)/AFX_MSG_MAP(CYzg6989View)/ NOTE - the ClassWizard will add and remove mapping macros here./ DO NOT EDIT what you see in these blocks of generated code!/AFX_MSG_MAP/ Standard printing commandsON_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()/ CYzg6989View construction/destructionCYzg6989View:CYzg6989View()/ TODO:add construction code hereCYzg6989View:CYzg6989View()BOOL CYzg6989View:PreCreateWindow(CREATESTRUCT& cs)/ TODO:Modify the Window class or styles here by modifying/ the CREATESTRUCT csreturn CView:PreCreateWindow(cs);/ CYzg6989View drawingvoid CYzg6989View:OnDraw(CDC* pDC)CYzg6989Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO:add draw code for native data here AfxGetMainWnd()->SetWindowText("6989 尹志刚");graph(pDC,0,0);CRect rect(200,120,430,350); CRect rect1(250,195,275,220); CRect rect2(355,195,380,220);CBrush nBrush(RGB(0,255,255),*pOldnBrush;pOldnBrush=pDC->SelectObject(&nBrush); pDC->Ellipse(200,120,430,350);pDC->SelectObject(pOldnBrush); CBrush Brush(RGB(0,0,0),*pOldBrush; pOldBrush=pDC->SelectObject(&Brush); pDC->RoundRect(rect1,CPoint(200,200); pDC->RoundRect(rect2,CPoint(200,200); pDC->SelectObject(pOldBrush);CBrush mBrush(RGB(255,255,0),*pOldmBrush;pOldmBrush=pDC->SelectObject(&mBrush); pDC->Arc(250,275,380,355,295,285,335,285);pDC->SelectObject(pOldmBrush); CPoint p1(305,295),p2(325,295); CPen Pen,*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); / CYzg6989View printingBOOL CYzg6989View:OnPreparePrinting(CPrintInfo* pInfo)/ default preparationreturn DoPreparePrinting(pInfo);void CYzg6989View:OnBeginPrinting(CDC* /*pDC*/,CPrintInfo* /*pInfo*/)/ TODO:add extra initialization before printingvoid CYzg6989View:OnEndPrinting(CDC* /*pDC*/,CPrintInfo* /*pInfo*/)/ TODO:add cleanup after printing/ CYzg6989View diagnostics#ifdef _DEBUGvoid CYzg6989View:AssertValid() constCView:AssertValid();void CYzg6989View:Dump(CDumpContext& dc) constCView:Dump(dc);CYzg6989Doc* CYzg6989View:GetDocument() / non-debug version is inlineASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CYzg6989Doc);return (CYzg6989Doc*)m_pDocument;#endif /_DEBUG/ CYzg6989View message handlersvoid CYzg6989View:ddaline(CDC *pDC,int x0,int y0,int x1,int y1,COLORREF color)int length,i;double x,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;void CYzg6989View:flagA(CDC *pDC,int x,int y)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);void CYzg6989View:flagB(CDC *pDC,int x,int y)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);CPenp1(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);void CYzg6989View:star(CDC *pDC,int x,int y,int r)CPoint stars5;const double PI=3.1415926;double alpha=PI/10;double beta=2*PI/5;for(int i=0;i<5;i+) starsi.x=ceil(r*cos(i*beta+alpha)+x;starsi.y=ceil(r*sin(i*beta+alpha)+y;CPoint starx5=stars0,stars2,stars4,stars1,stars3,;pDC->Polygon(starx,5);void CYzg6989View:colorCircle(CDC *pDC,CPen *pen,int x,int y,int r)CPen *old;old=pDC->SelectObject(pen);circle(pDC,x,y,r,FALSE);pDC->SelectObject(old);void CYzg6989View:circle(CDC *pDC,int x,int y,int r,BOOL fill)if (fill=TRUE) CBrush newBrush,*oldBrush;newBrush.CreateSolidBrush(RGB(0X33,0X33,0X33);oldBrush=pDC->SelectObject(&newBrush);pDC->Ellipse(CRect(x-r,y-r,x+r,y+r);pDC->SelectObject(oldBrush);elsepDC->Ellipse(CRect(x-r,y-r,x+r,y+r);void CYzg6989View:graph(CDC *pDC,int x,int y)flagA(pDC,x+360,y+42);flagB(pDC,x+40,y+44);程序运营效果图 总结通过课程设计项目设计、开发、测试、总结和验收各阶段,进一步理解计算机图形学课程中理论和算法,学习计算机图形学有关类编程技巧,初步掌握游戏开发前期技能。

    注意事项

    本文(计算机图形学专业课程设计方案报告.doc)为本站会员(知****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开