好文档 - 专业文书写作范文服务资料分享网站

计算机图形学实验报告

天下 分享 时间: 加入收藏 我要投稿 点赞

计算机图形学实验报告

计 算 机 图 形 学 课 程 实 验 报 告 姓名: 学号:

计算机图形学实验报告 目 录

DDA算法绘制直线 实验一 实验一 直线的DDA算法

一、【实验目的】

1.掌握DDA算法的基本原理。 2.掌握DDA直线扫描转换算法。

3.深入了解直线扫描转换的编程思想。

二、【实验内容】

1.利用DDA的算法原理,编程实现对直线的扫描转换。 2.加强对DDA算法的理解和掌握。

三、【测试数据及其结果】

四、【实验源代码】

#include

DDA算法绘制直线 实验一 #include #include #include

GLsizei winWidth=500; GLsizei winHeight=500;

void Initial(void) {

glClearColor(1.0f,1.0f,1.0f,1.0f); glMatrixMode(GL_PROJECTION); gluOrtho2D(0.0,200.0,0.0,150.0); }

void DDALine(int x0,int y0,int x1,int y1) {

glColor3f(1.0,0.0,0.0); int dx,dy,epsl,k;

float x,y,xIncre,yIncre; dx=x1-x0; dy=y1-y0; x=x0; y=y0;

if(abs(dx)>abs(dy)) epsl=abs(dx); else epsl=abs(dy);

xIncre=(float)dx/(float)epsl; yIncre=(float)dy/(float)epsl; for(k=0;k<=epsl;k++) {

glPointSize(3);

glBegin(GL_POINTS);

glVertex2i(int(x+0.5),(int)(y+0.5)); glEnd(); x+=xIncre; y+=yIncre; } }

void Display(void) {

glClear(GL_COLOR_BUFFER_BIT); DDALine(100,100,200,180); glFlush(); }

DDA算法绘制直线 实验一 void winReshapeFcn(GLint newWidth, GLint newHeight) {

glMatrixMode(GL_PROJECTION); glLoadIdentity();

gluOrtho2D(0.0, GLdouble(newWidth), 0.0, GLdouble(newHeight)); glClear(GL_COLOR_BUFFER_BIT); winWidth=newWidth; winHeight=newHeight; }

int main(int argc,char*argv[]) {

glutInit(&argc,argv);

glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); glutInitWindowSize(400,300); glutInitWindowPosition(100,120); glutCreateWindow(\

Initial();

glutDisplayFunc(Display);

glutReshapeFunc(winReshapeFcn); glutMainLoop();

return 0; }

计算机图形学实验报告

计算机图形学实验报告计算机图形学课程实验报告姓名:学号:计算机图形学实验报告目录DDA算法绘制直线实验一实验一直线的DDA算法一、
推荐度:
点击下载文档文档为doc格式
30xid2saoe38gut0xsx29kcek7hlwh013zo
领取福利

微信扫码领取福利

微信扫码分享