#include "line.h" void DrawLine_2(Point *a, Point *b, int colour) { register int d, x, y, ax, ay, sx, sy, dx, dy, x1; dx = b->x - a->x; ax = Abs(dx) << 1; sx = Sgn(dx); dy = b->y - a->y; ay = Abs(dy) << 1; sy = Sgn(dy); x = a->x; y = a->y; x1 = b->x; if (ax > ay) { d = ay - (ax >> 1); while (x != x1) { PutPixel(x, y, colour); if (d >= 0) { y += sy; d -= ax; } x += sx; d += ay; } } else { d = ax - (ay >> 1); while (y != y1) { PutPixel(x, y, colour); if (d >= 0) { x += sx; d -= ay; } y += sy; d += ax; } } }