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

计算机图形学实验报告

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

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

实验一 直线的DDA算法

一、【实验目的】

1.掌握DDA算法的基本原理。 2.掌握DDA直线扫描转换算法。 3.深入了解直线扫描转换的编程思想。

二、【实验内容】

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

三、【测试数据及其结果】 四、【实验源代码】

#include #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(); }

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);

计算机图形学实验报告

计算机图形学姓名:学号:课程实验报告目录实验一直线的DDA算法一、【实验目的】1.掌握DDA算法的基本原理。2.掌握DDA直线扫描转换算法。3.深入了解直线扫描转换的编程思想。二、【实验内容】1.利用DDA的算法原理,编程实现对直线的扫描转换。2.加强对DDA
推荐度:
点击下载文档文档为doc格式
05qwr69j89371qz5d0ci05ej21u0yu00k17
领取福利

微信扫码领取福利

微信扫码分享