projects
/
ctsim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add gitignores for locally generated files
[ctsim.git]
/
libctgraphics
/
bresenham.cpp
diff --git
a/libctgraphics/bresenham.cpp
b/libctgraphics/bresenham.cpp
index 43c8f349d2c68c42e1350fc9c73ebd8a085b2910..9bfbd359d334ff972808347b3184369072b47853 100644
(file)
--- 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);
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);
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);
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;
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;
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 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;
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);
}
}
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;
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 {
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);
}
}
} 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;
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 {
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);
}
}
} while (--count > 0);
}
-
-
+
+