中点画线法代码实现

中点画线法代码实现:

代码:

#include  
#include
#include
using namespace std;
float x11,y11, x22, y22;
voidMidLine(void)
{
     
	float x1 =
	x11, y1 = y11, x2 = x22, y2 = y22;
	double x, y ,
	d0 , d1 , d2 ,a ,b;
	glClear(GL_COLOR_BUFFER_BIT);
	y = y1;
	a = y11 - y2;
	b = x22 - x11;
	d0 = 2 * a + b;
	d1 = 2 * a;
	d2 = 2 * (a + b);
	for(x=x11;x<=x22;x++)
	{
     
		glBegin(GL_POINTS);
		glColor3f(2, 1, 1);
		glVertex2f(x / 1000, y / 1000);
		glEnd();
		if (d0< 0)
		{
     
			y++;
			d0 += d2;
		}else {
     
            		d0 += d1;
     			}
	}
	glFlush();
}
void main(int argc, char** argv) {
     
glutInit(&argc, argv); //初始化glut
glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA)
//设置窗口的模式-深度缓存,单缓存,颜色模型
glutInitWindowPosition(200, 200); //设置窗口的位置
glutInitWindowSize(400, 400); //设置窗口的大小
glutCreateWindow("3D Tech-
GLUT Tutorial"); //创建窗口并赋予title
cout << "输入起始点坐标,终点坐标" << endl;
cin >> x11 >> y11 >> x22 >> y22;
glutDisplayFunc(MidLine);//调用renderScene把绘制传送到窗口
glutMainLoop(); //进入循环等待
}

运行结果:中点画线法代码实现_第1张图片

你可能感兴趣的:(中点画线法代码实现)