实验《计算机图形学》课内实验报告(实验二)

实验《计算机图形学》课内实验报告(实验二)

ID:30844589

大小:727.74 KB

页数:25页

时间:2019-01-03

实验《计算机图形学》课内实验报告(实验二)_第1页
实验《计算机图形学》课内实验报告(实验二)_第2页
实验《计算机图形学》课内实验报告(实验二)_第3页
实验《计算机图形学》课内实验报告(实验二)_第4页
实验《计算机图形学》课内实验报告(实验二)_第5页
资源描述:

《实验《计算机图形学》课内实验报告(实验二)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、及学号:学院:班级:踝程名称:实验题目:11*1MM冻”电力犬斥《计算机图形学》课内实验报告学生姓名:理学院计算机图形学基本图形的生成算法讲师讲师2014年4月1日一、实验题目1二、实验目的1三、实验内容1四、实验结果2五、实验体会或遇到问题23基本图形的生成算法二'实验目的1.通过实验,进一步理解直线段扫描转换的DDA算法、中点bresenham算法及bresenham算法的基本原理;2.掌握以上算法生成直线段的基本过程;3.通过编程,会在C/C++环境下完成用DDA算法、中点bresenham算法及bresenham算法对任意直线段的扫描转换。三'实验内容1.点

2、的显示与属性对VC中画点的函数PutPixel与获取点函数GetPixel分别用于在指定位置画指定大小颜色的点或获取指定位置的点的颜色,而在OpenGL屮可以用属性选择来控制画点还是画线或多边形等。在VC中PutPixel的前两个参数为点的坐标位置,后面的参数为颜色属性来实现画点,在OpenGL中位于gibegin和glend之间的是数据点,通过选取gibegin的属性为GL_POINTS则数据点显示为点。2.常用画线算法与实现1)DDA算法,按四舍五入法取点的简单算法,编程容易,但计算量大。2)中点算法,是通过递推确定取点的方法,由于计算加与减,没有乘法运算所以计

3、算量少,是常用的算法,此算法是判断实际点位于相邻两个像素点的中点的上方,如果是则取上边的像点,否则取下边的像素点(当斜率绝对值大于1时按左右取)。3)实现,可VC中实现以上算法,OpenGL中已有相应函数画线。1.面的生成与填充1)用VC实现区域填充屮的扫描转换,用图像填充区域以及字符输出等,可用扫描线算法等实现,用OpenGL则可用填充函数及材质设置函数实现优质显示。2)由面生成空间图形可以用VC的图形变换实现不同角度效果,并用裁剪算法及隐藏面消除算法实现真实感效果,但OpenGL实现则要简单些。四、实验结果1.DDA算法画线图1DDA算法画线源程序:#inclu

4、de#include#include#defineROUND(a)((int)(a+0.5))#defineOX320#defineOY240voidlineDDA(intxa,intya,intxb,intyb,intcolor);voidsetpixel(intx,inty,intcolor);main(){intgdrive二DETECT,gmode=0;initgraph(&gdrive,&gmode,Hd:\tcn);setbkcolor(BLACK);line(0,OY,2*OX,OY);lin

5、e(OX,0,OX,2*OY);lineDDA(300,300,0,0,WHITE);getch();closegraph();return0;}voidlineDDA(intxa,intya,intxb,intyb,intcolor){intdx=xb-xa;intdy=yb-ya;intsteps,i;floatxlncrement,ylncrement;floatx=xa;floaty=ya;if(abs(dx)>abs(dy))steps=abs(dx);elsesteps=abs(dy);xlncrement=dx/(float)steps;ylncrem

6、ent=dy/(float)steps;putpixel(ROUND(x),ROUND(y),color);for(i=0;i#include#include

7、严*********牛成百线段的中点算法**********/voidMidPointLine(intx1,inty1,intx2,inty2,intcolor){floatxydx,dy;floatk,d;floatIncrEJncrNE;dx=x2-xl;dy=y2-y1;k=dy/dx;if(k>=-l&&k<=l){d=dx-2*dy;IncrE=-2*dy;IncrNE=2*(dx-dy);x=xl;y=y1;putpixel(x,y,color);while(x0)d+=IncrE;else{d+=IncrNE;

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

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

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