计算机图形学课程设计报告实验报告.doc

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WORD文档 可编辑 技术资料 专业分享 《计算机图形学》 实验报告 班级 计算机科学与技术 姓名 学号 2014 年 6 月 2 日 技术资料 专业分享 实验一 基本图形生成算法 一、实验目的: 1、掌握中点Bresenham绘制直线的原理; 2、设计中点Bresenham算法; 3、掌握八分法中点Bresenham算法绘制圆的原理; 4、设计八分法绘制圆的中点Bresenham算法; 5、掌握绘制1/4椭圆弧的上半部分和下半部分的中点Bresenham算法原理; 6、掌握下半部分椭圆偏差判别式的初始值计算方法; 7、设计顺时针四分法绘制椭圆的中点Bresenham算法。 二、实验过程: 实验描述 实验1:使用中点Bresenham算法绘制斜率为0=k=1的直线。 实验2:使用中点Bresenham算法绘制圆心位于屏幕客户区中心的圆。 实验3:使用中点Bresenham算法绘制圆心位于屏幕客户区中心的椭圆。 2、实验过程 1)用MFC(exe)建立一个单文档工程; 2)编写对话框,生成相应对象,设置相应变量; 3)在类CLineView中声明相应函数,并在相关的cpp文件中实现; 4)在OnDraw()函数里调用函数实现绘制直线、圆、椭圆; 5)运行程序,输入相应值,绘制出图形。 源代码 实验1:直线中点Bresenham算法 1.// cline.cpp : implementation file // cline dialog cline::cline(CWnd* pParent /*=NULL*/) : CDialog(cline::IDD, pParent) { //{{AFX_DATA_INIT(cline) m_x0 = 0; m_y0 = 0; m_x1 = 0; m_y1 = 0; //}}AFX_DATA_INIT } void cline::DoDataExchange(CDataExchange* pDX) 技术资料 专业分享 { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(cline) DDX_Text(pDX, IDC_x0, m_x0); DDX_Text(pDX, IDC_y0, m_y0); DDX_Text(pDX, IDC_x1, m_x1); DDX_Text(pDX, IDC_y1, m_y1); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(cline, CDialog) //{{AFX_MSG_MAP(cline) //}}AFX_MSG_MAP END_MESSAGE_MAP() // LineView.h class CLineView : public CView { public: CLineDoc* GetDocument(); .......... void Mbline(double,double,double,double); //直线中点Bresenham函数 ....... } 3、// Line.cpp //*******************直线中点Bresenham函数*********************/ void CLineView::Mbline(double x0, double y0, double x1, double y1) { CClientDC dc(this); COLORREF rgb=RGB(0,0,255); //定义直线颜色为蓝色 double x,y,d,k; x=x0; y=y0; k=(y1-y0)/(x1-x0); d=0.5-k; for(x=x0;x=x1;x++) { dc.SetPixel((int)x,(int)y,rgb); if(d0) { y++; d+=1-k; } else d-=k; } } 4、//LineView.cpp void CLineView::OnDraw(CDC* pDC) { CLineDoc* pDoc = GetDo

文档评论(0)

xiangxiang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档