实验1 中点画线和Bresenham画线算法的实现

实验1 中点画线和Bresenham画线算法的实现

ID:39615459

大小:80.00 KB

页数:9页

时间:2019-07-07

实验1 中点画线和Bresenham画线算法的实现_第1页
实验1 中点画线和Bresenham画线算法的实现_第2页
实验1 中点画线和Bresenham画线算法的实现_第3页
实验1 中点画线和Bresenham画线算法的实现_第4页
实验1 中点画线和Bresenham画线算法的实现_第5页
资源描述:

《实验1 中点画线和Bresenham画线算法的实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、计算机图形学实验报告实验1使用画线算法,绘制直线段姓名系别班级学号实验日期指导教师实验成绩杜艾莲地信10110081409252011.10.10一.实验目的及要求(1)掌握图形学中常用的三种画线算法:数值微分法、中点画线法和Bresenham画线算法。(2)掌握绘制直线的程序设计方法。(3)掌握使用文件来保存直线段的方法。(4)掌握从文本文件中恢复出直线的方法。二.实验内容使用VC++6.0开发环境,分别实现中点画线算法和Bresenham画线算法,绘制直线(注意,不能使用VC中已有的绘制直线的函数),并以文本文件的形式保存绘制的结果,可以从文本文件中恢复出以前绘制过的

2、直线。三.算法设计与分析输入P0(X0,Y0)和P1(X1,Y1)计算初始值△x,△yd=△x-2△y,x=X0,y=Y0(x,y)更新为(x+1,y+1),d更新为d+2△x-2△y(x,y)更新为(x+1,y),d更新为d-2△y结束Bresenham算法绘制直线的程序(仅包含整数运算)。voidMidBresenhamLine(intx0,inty0,intx1,inty1,intcolor){intdx,dy,d,UpIncre,DownIncre,x,y;if(x0>x1){x=x1;x1=x0;x0=x;y=y1;y1=y0;y0=y;}x=x0;y=y0;d

3、x=x1-x0;dy=y1-y0;d=dx-2*dy;UpIncre=2*dx-2*dy;DownIncre=-2*dy;while(x<=x1){putpixel(x,y,color);X++;if(d<0){y++;d+=UpIncre;}elsed+=DownIncre;}}一.程序调试及运行结果的自我分析与自我评价//testView.cpp:implementationoftheCTestViewclass#include"stdafx.h"#include"test.h"#include"testDoc.h"#include"testView.h"#inclu

4、de//ifstream、ofstream等位于其中#include#include//string类型需要#include"DlgInput.h"//CDlgInput类的头文件usingnamespacestd;#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif//CTestViewIMPLEMENT_DYNCREATE(CTestView,CView)BEGIN_MESSAGE_MAP(CTestV

5、iew,CView)//{{AFX_MSG_MAP(CTestView)ON_COMMAND(ID_MENUITEM32771,OnMenuitem32771)ON_COMMAND(ID_MENUBRESENHAMLINE,OnMenubresenhamline)ON_COMMAND(ID_MENUCLEARVIEW,OnMenuclearview)ON_COMMAND(ID_FILE_OPEN,OnFileOpen)ON_COMMAND(ID_FILE_SAVE,OnFileSave)//}}AFX_MSG_MAP//StandardprintingcommandsON

6、_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()//CTestViewconstruction/destructionCTestView::CTestView(){//TODO:addconstructioncodeherem_nFlag=-1;//不是任何绘图类型}CTestView:

7、:~CTestView(){}BOOLCTestView::PreCreateWindow(CREATESTRUCT&cs){//TODO:ModifytheWindowclassorstylesherebymodifying//theCREATESTRUCTcsreturnCView::PreCreateWindow(cs);}//CTestViewdrawingvoidCTestView::OnDraw(CDC*pDC){CTestDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);//TO

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。