24,854
社区成员
发帖
与我相关
我的任务
分享
#include<stdlib.h>
#include<GL/glut.h>
void myinit(void)
{
glClearColor(1.0,1.0,1.0,0.0);
glColor3f(1.0,0.0,0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0,500.0,0.0,500.0);
glMatrixMode(GL_MODELVIEW);
}
void MidpointLine(int x0,int y0,int x1,int y1)
{
int a,b,d1,d2,d,x,y;
a=y0-y1,b=x1-x0,d=2*a+b;
d1=2*a,d2=2*(a+b);
x=x0,y=y0;
while(x<x1)
{
if(d<0)
{
x++,y++,d+=d2;
}
else
{
x++,d+=d2;
}
}
}
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
MidpointLine(200,200,2000,2000);
glFlush();
}
int main(int argc, char** argv)
{
glutInit(&argc,argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(500,500);
glutInitWindowPosition(0,0);
glutCreateWindow("中点画线法");
glutDisplayFunc(display);
myinit();
glutMainLoop();
}