Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Bresenham's line algorithm
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Similar algorithms== The Bresenham algorithm can be interpreted as slightly modified [[Digital differential analyzer (graphics algorithm)|digital differential analyzer]] (using 0.5 as error threshold instead of 0, which is required for non-overlapping polygon rasterizing). The principle of using an [[incremental error algorithm|incremental error]] in place of division operations has other applications in graphics. It is possible to use this technique to calculate the [[uv mapping|U,V co-ordinates]] during raster scan of texture mapped polygons.<ref>{{Cite patent|title=Apparatus and method for performing perspectively correct interpolation in computer graphics|country=US|number=5739818|inventor1-first=John Neil|inventor1-last=Spackman|assign=[[Canon_Inc.|Canon KK]]|pubdate=1998-04-14}}</ref> The [[voxel]] heightmap software-rendering engines seen in some PC games also used this principle. Bresenham also published a Run-Slice computational algorithm: while the above described Run-Length algorithm runs the loop on the major axis, the Run-Slice variation loops the other way.<ref>{{cite web |title=Michael Abrash's Graphics Programming Black Book Special Edition: The Good, the Bad, and the Run-Sliced |url=http://www.phatcode.net/res/224/files/html/ch36/36-01.html |website=www.phatcode.net |access-date=13 February 2024}}; </ref> This method has been represented in a number of US patents: * {{US patent reference |number={{formatnum:5,815,163|R}} |title=Method and apparatus to draw line slices during calculation }} * {{US patent reference |number={{formatnum:5,740,345|R}} |title=Method and apparatus for displaying computer graphics data stored in a compressed format with an efficient color indexing system }} * {{US patent reference |number={{formatnum:5,657,435|R}} |title=Run slice line draw engine with non-linear scaling capabilities }} * {{US patent reference |number={{formatnum:5,627,957|R}} |title=Run slice line draw engine with enhanced processing capabilities }} * {{US patent reference |number={{formatnum:5,627,956|R}} |title=Run slice line draw engine with stretching capabilities }} * {{US patent reference |number={{formatnum:5,617,524|R}} |title=Run slice line draw engine with shading capabilities }} * {{US patent reference |number={{formatnum:5,611,029|R}} |title=Run slice line draw engine with non-linear shading capabilities }} * {{US patent reference |number={{formatnum:5,604,852|R}} |title=Method and apparatus for displaying a parametric curve on a video display }} * {{US patent reference |number={{formatnum:5,600,769|R}} |title=Run slice line draw engine with enhanced clipping techniques }} The algorithm has been extended to: * Draw lines of arbitrary thickness, an algorithm created by Alan Murphy at IBM.<ref>{{Cite web|url=http://homepages.enterprise.net/murphy/thickline/index.html|title=Murphy's Modified Bresenham Line Algorithm|website=homepages.enterprise.net|access-date=2018-06-09}} ('Line Thickening by Modification to Bresenham's Algorithm' in the IBM Technical Disclosure Bulletin Vol. 20 No. 12 May 1978 pages 5358-5366.)</ref> * Draw multiple kinds curves (circles, ellipses, cubic, quadratic, and rational [[Bézier curve]]s) and antialiased lines and curves; a set of algorithms by Alois Zingl.<ref name=Zingl>{{cite report|last=Zingl|first=Alois|title=A Rasterizing Algorithm for Drawing Curves|date=2016|orig-date=Previously published in 2012|url=https://zingl.github.io/Bresenham.pdf}}<br>HTML abstract and demo: {{cite web|date=2020|orig-date=Previously published in 2012|last=Zingl|first=Alois|title=The Beauty of Bresenham's Algorithm|url=https://zingl.github.io/bresenham.html|website=zingl.github.io}}</ref>
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Bresenham's line algorithm
(section)
Add topic