图形学实验报告1

图形学实验报告1

ID:39574820

大小:90.50 KB

页数:6页

时间:2019-07-06

图形学实验报告1_第1页
图形学实验报告1_第2页
图形学实验报告1_第3页
图形学实验报告1_第4页
图形学实验报告1_第5页
资源描述:

《图形学实验报告1》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、西华大学计算机系学生上机实践报告西华大学计算机系上机实践报告课程名称:计算机图形学年级:上机实践成绩:指导教师:罗晓辉姓名:上机实践名称:学号:上机实践日期:上机实践编号:组号:上机实践时间:一、目的理解直线生成的基本原理,掌握几种基本的直线生成算法,利用C++实现直线生成的DDA画线算法、中点画线算法、Bresenham画线算法。二、内容与设计思想内容:(1)了解直线的生成原理。(2)掌握几种基本的直线生成算法:DDA画线算法、中点画线算法、Bresenham画线算法。(3)利用C++分别实现

2、直线的算法,在屏幕上任意生成一条直线。设计思想:(1)熟悉教材关于直线的生成原理。(2)仿照教材的原理,编写代码,分别用三种方法实现直线的生成。(3)调试、编译、生成程序。三、使用环境VC++四、核心代码及调试过程DDA画线算法:voidCGView::Line_DDA(longp1x,longp1y,longp2x,longp2y,CDC*pDC){inti;if(p1x==p2x){//为竖线if(p1y<=p2y){for(i=p1y;i<=p2y;i++)pDC->SetPixel(p1

3、x,i,m_lPenColor);//在当前窗口画点}else{第6页共6页西华大学计算机系学生上机实践报告for(i=p2y;i<=p1y;i++)pDC->SetPixel(p1x,i,m_lPenColor);//在当前窗口画点}return;}//为横线if(p1y==p2y){if(p1x<=p2x){for(i=p1x;i<=p2x;i++)pDC->SetPixel(i,p1y,m_lPenColor);//在当前窗口画点}else{for(i=p2x;i<=p1x;i++)pDC

4、->SetPixel(i,p1y,m_lPenColor);//在当前窗口画点}return;}//为斜线floatm=(p2y-p1y)*1.0/(p2x-p1x);floatfTemp;if(abs(m)<=1){if(p1xSetPixel(i,fTemp+=m,m_lPenColor);//在当前窗口画点}else{fTemp=p2y-m;for(i=p2x;i<=p1x;i++)第6页共6页西华大学

5、计算机系学生上机实践报告pDC->SetPixel(i,fTemp+=m,m_lPenColor);//在当前窗口画点}return;}if(p1ySetPixel(fTemp+=1/m,i,m_lPenColor);//在当前窗口画点}else{fTemp=p2x-1/m;for(i=p2y;i<=p1y;i++)pDC->SetPixel(fTemp+=1/m,i,m_lPenColor);//在当前

6、窗口画点}}中点画线算法:voidCGView::Line_MidPoint(longx1,longy1,longx2,longy2,CDC*pDC){intx,y,a,b,delta1,delta2,d;a=y1-y2;b=x2-x1;d=2*a+b;delta1=2*a;delta2=2*(a+b);x=x1;y=y1;pDC->SetPixel(x,y,m_lPenColor);while(x

7、大学计算机系学生上机实践报告d+=delta1;}pDC->SetPixel(x,y,m_lPenColor);}}Bresenham画线算法voidCGView::Line_Bresenham(longx1,longy1,longx2,longy2,CDC*pDC){intdx,dy,x,y,d,d1,d2,inc,tmp;dx=x2-x1;dy=y2-y1;if(dx*dy>=0)inc=1;elseinc=-1;if(abs(dx)>abs(dy)){if(dx<0){tmp=x1;x1=

8、x2;x2=tmp;tmp=y1;y1=y2;dx=-dy;dy=-dy;}d=2*dy-dx;d1=2*dy;d2=2*(dy-dy);x=x1;y=y1;pDC->SetPixel(x,y,m_lPenColor);while(xSetPixel(x,y,m_lPenColor);}}else{if(dy<0){tmp=x1;x1=x2;x2=tmp;tmp

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

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

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