4 Downloads
Updated 08 Nov 2006
No License
Generate a line profile of a 2d image
using Bresenham's algorithm.
For a demo purpose, try
bresenham();
Narupon Chattrapiban (2021). Bresenham's Line (https://www.mathworks.com/matlabcentral/fileexchange/12939-bresenham-s-line), MATLAB Central File Exchange. Retrieved .
Inspired: 2D Local Grid Map, TACTICS Toolbox
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Create scripts with code, output, and formatted text in a single executable document.
Works!
Hi, I think that your code is very helpful. However, I found a minor bug in the code.
----------
if bitshift(error,1) >= delx, % same as -> if 2*error >= delx,
y_n = y_n + ystep;
error = error - delx;
end
----------
In case of a coordinate of first point is (2,3) and second point is (3,11), it does not work and print out error message. I think this error caused by 'bitshift' function. I changed the function to '2*error', then the problem is solved.
I have been using this function for some time now, and saw that other Bresenham's Line functions were more recently uploaded to MFE. I haven't compared performances yet, still this works great.
Hi! Nice Code!
However, i think there is a little bug:
the code that i downloaded says:
----------
if steep,
myline(n) = mymat(x_n,y_n);
outmat(x_n,y_n) = 0;
X(n) = x_n;
Y(n) = y_n;
else
myline(n) = mymat(y_n,x_n);
outmat(y_n,x_n) = 0;
X(n) = y_n;
Y(n) = x_n;
end
-------
...this does not work for me, i think the code within the if and else statements should be swapped:
---------
if steep,
myline(n) = mymat(y_n,x_n);
outmat(y_n,x_n) = 0;
X(n) = y_n;
Y(n) = x_n;
else
myline(n) = mymat(x_n,y_n);
outmat(x_n,y_n) = 0;
X(n) = x_n;
Y(n) = y_n;
end
-------
Best,
Christian
Brilliant. You probably just saved me a few hours! Many thanks.
Very nice with demo! Thanks!
Well done! Demo and visualization included.
excellent
an image with an example , please