File Exchange

image thumbnail

Bresenham's Line

version 1.0 (2.18 KB) by

Generate a line profile of a 2d image

6 Downloads

Updated

No License

Generate a line profile of a 2d image
using Bresenham's algorithm.

For a demo purpose, try

bresenham();

Comments and Ratings (11)

Works!

JK Hwang

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.

Raz Shimoni

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.

Christian

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

Christian

Tina Hegarty

Brilliant. You probably just saved me a few hours! Many thanks.

Canuck Hanks

Very nice with demo! Thanks!

Ryan Crow

Well done! Demo and visualization included.

julio choque

excellent

scardanzan ivan

an image with an example , please

MATLAB Release
MATLAB 6.5 (R13)
Acknowledgements

Inspired: 2D Local Grid Map, TACTICS Toolbox

MATLAB Online Live Editor Challenge

Win cash prizes and have your live script featured on our website

Learn more

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video