Skip to main content
Added RoadMap link
Source Link
Evil
  • 9.5k
  • 11
  • 32
  • 52

This ia a bit like comparing apples and oranges.
Good written Bresenham algorithm works like Wu algorithm without antialiasing. It can be used to draw lines, ellipses and circles with very high speed using only integer arithmetic.
Among all line rasterizers Bresenham is the fastest (DDA, naive, etc.).

There are different purposes - Wu is used to draw plausible looking not jagged lines, Bresenham is used to ensure fast continous lines. Apart of taking part where only outline might be antialiased, there is no point in doing so on the inside of thick geometric primitive. Moreover good implementation of Wu algorithm also uses special cases to handle all inputs.

In the case of variable thick line there is Murphys modification built on top of Bresenham algorithm.

2D libraries use internaly Bresenham algorithm and Wu giving chance to choose (some kind of antialiasing flag). Even OpenGL/WebGL without flags produced Bresenham line (I haven't checked internals, just matched the output). Simple GDI and Java used it internally (new versions might use something different).

But there is more than that. There are situations where you have discrete points (like from mouse events) and want to get continous path - there is no use in antialiasing.

Practical algorithms like RoadMapRoadMap (there is only mention that Bresenham is used for connectivity check) or moving on discrete lattice, like configuration space for robots, CNC represents obstacles or material to be milled as pixels/voxels - there is no need for antialiasing but one must be sure that no obstacle was hit - this is where continous and fast properties of Bresenham are used.

Summing it up, there are lots of algorithms that depend on Bresenham, use it internally or are just modified versions of it.
Depending on usage, not always antialiasing is needed, so using Wu as better is just waste of resources.

If some references are needed beyond what Raphael provided (he already made it clear) I will update some links upon encounter.

This ia a bit like comparing apples and oranges.
Good written Bresenham algorithm works like Wu algorithm without antialiasing. It can be used to draw lines, ellipses and circles with very high speed using only integer arithmetic.
Among all line rasterizers Bresenham is the fastest (DDA, naive, etc.).

There are different purposes - Wu is used to draw plausible looking not jagged lines, Bresenham is used to ensure fast continous lines. Apart of taking part where only outline might be antialiased, there is no point in doing so on the inside of thick geometric primitive. Moreover good implementation of Wu algorithm also uses special cases to handle all inputs.

In the case of variable thick line there is Murphys modification built on top of Bresenham algorithm.

2D libraries use internaly Bresenham algorithm and Wu giving chance to choose (some kind of antialiasing flag). Even OpenGL/WebGL without flags produced Bresenham line (I haven't checked internals, just matched the output). Simple GDI and Java used it internally (new versions might use something different).

But there is more than that. There are situations where you have discrete points (like from mouse events) and want to get continous path - there is no use in antialiasing.

Practical algorithms like RoadMap or moving on discrete lattice, like configuration space for robots, CNC represents obstacles or material to be milled as pixels/voxels - there is no need for antialiasing but one must be sure that no obstacle was hit - this is where continous and fast properties of Bresenham are used.

Summing it up, there are lots of algorithms that depend on Bresenham, use it internally or are just modified versions of it.
Depending on usage, not always antialiasing is needed, so using Wu as better is just waste of resources.

If some references are needed beyond what Raphael provided (he already made it clear) I will update some links upon encounter.

This ia a bit like comparing apples and oranges.
Good written Bresenham algorithm works like Wu algorithm without antialiasing. It can be used to draw lines, ellipses and circles with very high speed using only integer arithmetic.
Among all line rasterizers Bresenham is the fastest (DDA, naive, etc.).

There are different purposes - Wu is used to draw plausible looking not jagged lines, Bresenham is used to ensure fast continous lines. Apart of taking part where only outline might be antialiased, there is no point in doing so on the inside of thick geometric primitive. Moreover good implementation of Wu algorithm also uses special cases to handle all inputs.

In the case of variable thick line there is Murphys modification built on top of Bresenham algorithm.

2D libraries use internaly Bresenham algorithm and Wu giving chance to choose (some kind of antialiasing flag). Even OpenGL/WebGL without flags produced Bresenham line (I haven't checked internals, just matched the output). Simple GDI and Java used it internally (new versions might use something different).

But there is more than that. There are situations where you have discrete points (like from mouse events) and want to get continous path - there is no use in antialiasing.

Practical algorithms like RoadMap (there is only mention that Bresenham is used for connectivity check) or moving on discrete lattice, like configuration space for robots, CNC represents obstacles or material to be milled as pixels/voxels - there is no need for antialiasing but one must be sure that no obstacle was hit - this is where continous and fast properties of Bresenham are used.

Summing it up, there are lots of algorithms that depend on Bresenham, use it internally or are just modified versions of it.
Depending on usage, not always antialiasing is needed, so using Wu as better is just waste of resources.

If some references are needed beyond what Raphael provided (he already made it clear) I will update some links upon encounter.

Source Link
Evil
  • 9.5k
  • 11
  • 32
  • 52

This ia a bit like comparing apples and oranges.
Good written Bresenham algorithm works like Wu algorithm without antialiasing. It can be used to draw lines, ellipses and circles with very high speed using only integer arithmetic.
Among all line rasterizers Bresenham is the fastest (DDA, naive, etc.).

There are different purposes - Wu is used to draw plausible looking not jagged lines, Bresenham is used to ensure fast continous lines. Apart of taking part where only outline might be antialiased, there is no point in doing so on the inside of thick geometric primitive. Moreover good implementation of Wu algorithm also uses special cases to handle all inputs.

In the case of variable thick line there is Murphys modification built on top of Bresenham algorithm.

2D libraries use internaly Bresenham algorithm and Wu giving chance to choose (some kind of antialiasing flag). Even OpenGL/WebGL without flags produced Bresenham line (I haven't checked internals, just matched the output). Simple GDI and Java used it internally (new versions might use something different).

But there is more than that. There are situations where you have discrete points (like from mouse events) and want to get continous path - there is no use in antialiasing.

Practical algorithms like RoadMap or moving on discrete lattice, like configuration space for robots, CNC represents obstacles or material to be milled as pixels/voxels - there is no need for antialiasing but one must be sure that no obstacle was hit - this is where continous and fast properties of Bresenham are used.

Summing it up, there are lots of algorithms that depend on Bresenham, use it internally or are just modified versions of it.
Depending on usage, not always antialiasing is needed, so using Wu as better is just waste of resources.

If some references are needed beyond what Raphael provided (he already made it clear) I will update some links upon encounter.