File Exchange

## Bresenham's Line

version 1.0 (2.18 KB) by

Generate a line profile of a 2d image

Updated

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

For a demo purpose, try

bresenham();

Works!

JK Hwang

### JK Hwang (view profile)

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

### Raz Shimoni (view profile)

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.

Fernando Gonzalez

Christian

### Christian (view profile)

Hi! Nice Code!

However, i think there is a little bug:

----------
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

### Tina Hegarty (view profile)

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 6.5 (R13)