X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=libctgraphics%2Fbresenham.cpp;h=9bfbd359d334ff972808347b3184369072b47853;hp=43c8f349d2c68c42e1350fc9c73ebd8a085b2910;hb=1a050c98763fbbc0662731b0b76953acede6f5d7;hpb=c8b19dfaffba9f06d8b6c40cb1bb83a8964867f7 diff --git a/libctgraphics/bresenham.cpp b/libctgraphics/bresenham.cpp index 43c8f34..9bfbd35 100644 --- a/libctgraphics/bresenham.cpp +++ b/libctgraphics/bresenham.cpp @@ -24,48 +24,48 @@ -void +void bresenham (int x1, int y1, int x2, int y2) { int delta_x = x2 - x1; int dx_abs = (delta_x >= 0 ? delta_x : -delta_x); - + int delta_y = y2 - y1; int dy_abs = (delta_y >= 0 ? delta_y : -delta_y); - - // draws a line when abs(dx) >= abs(dy) + + // draws a line when abs(dx) >= abs(dy) if (dx_abs > dy_abs) { int count = dx_abs + 1; int major_inc = (x1 <= x2 ? 1 : -1); - int min_inc = (delta_y >= 0 ? 1 : -1); // determine direction of minor axis - + int min_inc = (delta_y >= 0 ? 1 : -1); // determine direction of minor axis + int d = dy_abs * 2 - dx_abs; // Put decision variable in d int dinc1 = (dy_abs - dx_abs) * 2; int dinc2 = 2 * dy_abs; - + bresx (x1, y1, major_inc, d, d1, d2); } else { //For plotting lines with abs(dy) > abs(sx) int count = dy_abs + 1; - + int major_inc = (y1 <= y2 ? 1 : -1); int min_inc = (delta_x >= 0 ? 1 : -1); // check direction of minor axis - + int d = dx_abs * 2 - dy_abs; dinc1 = (dx_abs - dy_abs) * 2; dinc2 = 2 * dx_abs; - + bresy (x1, y1, major_inc, min_inc, count, d, d1, d2); } } -static void +static void bresx (int x, int y, int majorinc, int minorinc, int count, int d, int d1, int d2) { do { setpixel(); x += majorinc; - + if (d < 0) d += dinc2; else { @@ -74,15 +74,15 @@ bresx (int x, int y, int majorinc, int minorinc, int count, int d, int d1, int d } } while (--count > 0); } - - -static void + + +static void bresy (int x, int y, int majorinc, int minorinc, int count, int d, int d1, int d2) { do { setpixel(); y += majorinc; - + if (d < 0) d += dinc2; else { @@ -91,5 +91,5 @@ bresy (int x, int y, int majorinc, int minorinc, int count, int d, int d1, int d } } while (--count > 0); } - - + +