计算机图形学上机报告(共13页).doc
《计算机图形学上机报告(共13页).doc》由会员分享,可在线阅读,更多相关《计算机图形学上机报告(共13页).doc(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上计算机图形学上机实验报告计算机科学与技术学院班 级: 学 号: 姓 名: 指导教师: 完成日期: 实验一:基本图元绘制一. 实验目的1. 了解如何利用OpenGL库绘制图形2. 理解glut程序框架3. 理解窗口到视区的变换4. 理解OpenGL实现动画的原理二. 实验内容1. 实现中点Bresenham算法画直线2. 实现改进Bresenham算法画直线3. 实现圆的绘制三. 实验结果1.DDA算法画直线2. 中点Bresenham算法画直线3. 改进Bresenham算法画直线4. Bresenham算法画圆四. 源程序#include #include #inc
2、lude stdio.hint m_PointNumber = 0; /动画时绘制点的数目int m_DrawMode = 4; /绘制模式 1 DDA算法画直线 / 2 中点Bresenham算法画直线 / 3 改进Bresenham算法画直线 / 4 八分法绘制圆 / 5 四分法绘制椭圆/绘制坐标线void DrawCordinateLine(void)int i = 0 ;/坐标线为黑色glColor3f(0.0f, 0.0f ,0.0f);glBegin(GL_LINES); for (i=10;i abs(dy) epsl = abs(dx);else epsl = abs(dy);
3、xIncre = (float)dx / epsl ;yIncre = (float)dy / epsl ;for(k = 0; k=num-1) printf(x=%f,y=%f,取整后 x=%d,y=%dn, x, y, (int)(x+0.5),(int)(y+0.5);break;x += xIncre;y += yIncre;if(x = 25 | y = 25) break;void BresenhamLine(GLsizei x0, GLsizei y0, GLsizei x1, GLsizei y1, GLsizei num)glColor3f(1.0f,0.0f,0.0f);
4、if(num = 1)printf(中点Bresenham算法画直线:各点坐标及判别式的值n);else if(num=0)return;/画线算法的实现GLsizei dx,dy,d,UpIncre,DownIncre,x,y,xend=0;if(x0x1)x=x1;x1=x0;x0=x;y=y1;y1=y0;y0=y;x=x0;y=y0;dx=x1-x0;dy=y1-y0;d=dx-2*dy;UpIncre=2*dx-2*dy;DownIncre=-2*dy;while (x=num-1) break;x+;if(d= 50 | y = 50) break;void Bresenham2L
5、ine(GLsizei x0, GLsizei y0, GLsizei x1, GLsizei y1, GLsizei num)glColor3f(1.0f,0.0f,0.0f);if(num = 1)printf(改进的Bresenham算法画直线:各点坐标及判别式的值n);else if(num=0)return;/画线算法的实现GLsizei x,y,dx,dy,e;dx=x1-x0;dy=y1-y0;e=-dx;x=x0;y=y0;while (x=num-1) break;x+;e=e+2*dy;if(e0)y+;e=e-2*dx;if(x = 50 | y = 50) break;
6、void BresenhamCircle(GLsizei x, GLsizei y, GLsizei r, GLsizei num)glColor3f(1.0f,0.0f,0.0f);if(num = 1)printf(Bresenham算法画圆:各点坐标及判别式的值n);x=0,y=r;GLsizeid=1-r;while (x=num) break;putpixel(y,x);if (x=num) break;putpixel(-y,x);if (x=num) break;putpixel(-x,y);if (x=num) break;putpixel(-x,-y);if (x=num)
7、break;putpixel(-y,-x);if (x=num) break;putpixel(y,-x);if (x=num) break;putpixel(x,-y);if(d0)d+=2*x+3;elsed+=2*(x-y)+5;y-;x+;/初始化窗口void Initial(void) / 设置窗口颜色为蓝色 glClearColor(1.0f, 1.0f, 1.0f, 1.0f);/ 窗口大小改变时调用的登记函数void ChangeSize(GLsizei w, GLsizei h)if(h = 0)h = 1;/ 设置视区尺寸 glViewport(0, 0, w, h);/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 图形学 上机 报告 13
限制150内