计算机图形学课程设计报告.docx
- 文档编号:1423337
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:12
- 大小:43.54KB
计算机图形学课程设计报告.docx
《计算机图形学课程设计报告.docx》由会员分享,可在线阅读,更多相关《计算机图形学课程设计报告.docx(12页珍藏版)》请在冰豆网上搜索。
计算机图形学课程设计报告
计算机图形学
课程设计报告
设计课题:
专业班级:
学号:
学生姓名:
指导教师:
设计时间:
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
//
#include"stdafx.h"
#include"Yzg20166989.h"
#include"math.h"
#include"Yzg20166989Doc.h"
#include"Yzg20166989View.h"
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
//CYzg20166989View
IMPLEMENT_DYNCREATE(CYzg20166989View,CView)
BEGIN_MESSAGE_MAP(CYzg20166989View,CView)
//{{AFX_MSG_MAP(CYzg20166989View)
//NOTE-theClassWizardwilladdandremovemappingmacroshere.
//DONOTEDITwhatyouseeintheseblocksofgeneratedcode!
//}}AFX_MSG_MAP
//Standardprintingcommands
ON_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/destruction
CYzg20166989View:
:
CYzg20166989View()
{
//TODO:
addconstructioncodehere
}
CYzg20166989View:
:
~CYzg20166989View()
{
}
BOOLCYzg20166989View:
:
PreCreateWindow(CREATESTRUCT&cs)
{
//TODO:
ModifytheWindowclassorstylesherebymodifying
//theCREATESTRUCTcs
returnCView:
:
PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
//CYzg20166989Viewdrawing
voidCYzg20166989View:
:
OnDraw(CDC*pDC)
{
CYzg20166989Doc*pDoc=GetDocument();
ASSERT_VALID(pDoc);
//TODO:
adddrawcodefornativedatahere
AfxGetMainWnd()->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));
}
/////////////////////////////////////////////////////////////////////////////
//CYzg20166989Viewprinting
BOOLCYzg20166989View:
:
OnPreparePrinting(CPrintInfo*pInfo)
{
//defaultpreparation
returnDoPreparePrinting(pInfo);
}
voidCYzg20166989View:
:
OnBeginPrinting(CDC*/*pDC*/,CPrintInfo*/*pInfo*/)
{
//TODO:
addextrainitializationbeforeprinting
}
voidCYzg20166989View:
:
OnEndPrinting(CDC*/*pDC*/,CPrintInfo*/*pInfo*/)
{
//TODO:
addcleanupafterprinting
}
////////////////////////////////////////////////////////////////////
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 图形学 课程设计 报告