/* * DrawLine2.c * the fixed version */ extern void Plot(int x, int y); /* plots a pixel on the screen */ /* * this function draws a line on the screen between (x0,y0) and (x1,y1). */ void DrawLine2(int x0, int y0, int x1, int y1) { Plot(x0, y0); Plot(x1, y1); DrawLine2_Helper(x0, y0, x1, y1); } void DrawLine2_Helper(int x0, int y0, int x1, int y1) { int xmid, ymid; xmid = (x0 + x1) / 2; ymid = (y0 + y1) / 2; if((x0 == xmid && y0 == ymid) || (x1 == xmid && y1 == ymid)) return; Plot(xmid, ymid); DrawLine2(x0, y0, xmid, ymid); DrawLine2(xmid, ymid, x1, y1); }