File Exchange

image thumbnail

fast bresenham

version 1.0 (21.2 KB) by

implement bresenham algo using C mex file for higher speed

1 Download

Updated

View License

Two functions, LineTwoPnts and SegInmat, are provided.

LineTwoPnts lines two arbitray points.
for example:
------------
[rr, cc] = LineTwoPnts(-2,-3, 2,4);
disp('The line between (-2,-3) and (2,4): ');
disp('row: ');disp(rr);
disp('col: ');disp(cc);

The line between (-2,-3) and (2,4):
row:
-2 -1 -1 0 0 1 1 2

col:
-3 -2 -1 0 1 2 3 4

SegInMat returns value of a segment within a matrix
for example:
------------
mat = reshape(1:18, 3, 6);
elems = SegInMat(mat, 1,1, 3,5);
disp('mat:'); disp(mat);
disp('the values of line (1,1) and (3,5) within mat: ');
disp(elems);

mat:
1 4 7 10 13 16
2 5 8 11 14 17
3 6 9 12 15 18

the values of line (1,1) and (3,5) within mat:
1 5 8 12 15

Using C mex file for higher speed.

Have fun:)

Comments and Ratings (1)

Arafat Khan

There is a bug in this and it gives wrong results for input 15,66,61,67. Check it out.

Updates

a bug is fixed. previous version will crash wehn |rs-re|==|cs-ce|

MATLAB Release
MATLAB 7.2 (R2006a)

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

» Watch video

bresenham_mex/html/