Skip to content

Commit 18d1190

Browse files
authored
Update bresneham line drawing algorithm.cpp
1 parent 1e1f732 commit 18d1190

File tree

1 file changed

+17
-20
lines changed

1 file changed

+17
-20
lines changed

bresneham line drawing algorithm.cpp

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,48 +4,44 @@
44

55
void bresenham(float x1, float y1, float x2, float y2)
66
{
7-
float x, y, xincr, yincr;
7+
float x=x1, y=y1, xincr, yincr;
88
int p, dx, dy;
9-
dx = x2 - x1;
10-
dy = y2 - y1;
11-
if(dx<0) xincr = -1;
12-
if(dy<0) yincr = -1;
13-
dx = abs(dx);
14-
dy = abs(dy);
15-
16-
if(dx < dy)
9+
dx = abs(x2 - x1);
10+
dy = abs(y2 - y1);
11+
if(dx>0) xincr = 1; else xincr = -1;
12+
if(dy>0) yincr = 1; else yincr = -1;
13+
putpixel(x, y, WHITE);
14+
if(dx > dy)
1715
{
18-
putpixel(x, y, WHITE);
1916
p =2*dy-dx;
2017
int k = 0;
21-
while(k < dx)
18+
while(k <= dx)
2219
{
2320
if(p < 0){
24-
x += 1;
21+
x += xincr;
2522
p += 2*dy;
2623
}else{
27-
x += 1;
28-
y += 1;
24+
x += xincr;
25+
y += yincr;
2926
p += 2*dy - 2*dx;
3027
}
3128
k++;
3229
putpixel(x, y, WHITE);
3330
}
3431
}
3532
else{
36-
putpixel(x, y, WHITE);
37-
p = 2*dy-dx;
33+
p = 2*dx-dy;
3834
int k = 0;
3935

40-
while(k < dy)
36+
while(k <= dy)
4137
{
4238
if(p < 0){
43-
y += 1;
39+
y += yincr;
4440
p += 2*dx;
4541
}
4642
else{
47-
x += 1;
48-
y += 1;
43+
x += xincr;
44+
y += yincr;
4945
p += 2*dx -2*dy;
5046
}
5147
k++;
@@ -63,4 +59,5 @@ int main()
6359
bresenham(300, 200, 100, 50);
6460
getch();
6561
closegraph();
62+
return 0;
6663
}

0 commit comments

Comments
 (0)