您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 试验二计算机图形学中点画线法
中点画线法#includewindows.h#includestdio.h#includeGL/gl.h#includeGL/glu.h#includeGL/glaux.h//opengl32.libglu32.libglaux.libintx1,y1,x2,y2;voidInitGL(void){auxInitDisplayMode(AUX_SINGLE|AUX_RGBA);auxInitPosition(0,0,640,480);auxInitWindow(FirstAuxOpenGLDemo);glClearColor(0.6,0.6,0.6,0.0);glClear(GL_COLOR_BUFFER_BIT);}voidMidpointLine(intx1,inty1,intx2,inty2){inti,x,y;floatdx,dy,d,k;dx=x2-x1;dy=y2-y1;k=dy/dx;if(k=1){d=0.5-k;x=x1;y=y1;glVertex2i(x1,y1);for(i=1;i=dx;i++){glBegin(GL_POINTS);glVertex2i(x,y);x++;if(d0){y++;d=d+1-k;}elsed=d-k;Sleep(10);glEnd();//结束绘制glFlush();//进行刷新}}if(k1){d=1-0.5*k;x=x1;y=y1;glVertex2i(x1,y1);for(i=1;i=dy;i++){glBegin(GL_POINTS);glVertex2i(x,y);y++;if(d0){x++;d=d+1;}elsed=d-k+1;Sleep(10);glEnd();//结束绘制glFlush();//进行刷新}}}voidCALLBACKDraw(void){//glBegin(GL_POINTS);MidpointLine(x1,y1,x2,y2);//glEnd();//结束绘制//glFlush();//进行刷新}voidmain(void){printf(pleaseinputthestartpoint(x1,y1):);scanf(%d,%d,&x1,&y1);printf(pleaseinputthestartpoint(x2,y2):);scanf(%d,%d,&x2,&y2);InitGL();//初始化auxMainLoop(Draw);//进行绘制}
本文标题:试验二计算机图形学中点画线法
链接地址:https://www.777doc.com/doc-5719584 .html