Toeplitz matrix: Difference between revisions
en>Stephen J. Brooks Relate A to a |
Undid revision 573868946 by Mark viking (talk)--different Bareiss alg |
||
Line 1: | Line 1: | ||
{{Expand German|Rasterung von Linien|fa=yes|topic=sci|date=December 2009}} | |||
A '''line drawing algorithm''' is a graphical [[algorithm]] for approximating a line segment on discrete graphical media. On discrete media, such as [[pixel]]-based [[computer display|display]]s and [[computer printer|printer]]s, line drawing requires such an approximation (in nontrivial cases). | |||
On continuous media, by contrast, no algorithm is necessary to draw a line. For example, [[oscilloscope]]s use natural phenomena to draw lines and curves. | |||
The Cartesian slope-intercept equation for a straight line is | |||
Y= mx+b | |||
With m representing the slope of the line and b as the y intercept. Given that the two endpoints of the line segment are specified at positions (x1,y1) and (x2,y2). we can determine values for the slope m and y intercept b with the following calculations, | |||
m=(y2-y1)/(x2-x1) | |||
so, b=y1-m.x1 | |||
==A naïve line-drawing algorithm== | |||
<code> | |||
dx = x2 - x1 | |||
dy = y2 - y1 | |||
'''for''' x '''from''' x1 '''to''' x2 { | |||
y = y1 + dy * (x - x1) / dx | |||
plot(x, y) | |||
}</code> | |||
It is assumed here that the points have already been ordered so that <math>x_2 > x_1</math>. | |||
This algorithm works just fine when <math>dx >= dy</math> (i.e., slope is less than or equal to 1), but if <math>dx < dy</math> (i.e., slope greater than 1), the line becomes quite sparse with lots of gaps, and in the limiting case of <math>dx = 0</math>, only a single point is plotted. | |||
The naïve line drawing algorithm is inefficient and thus, slow on a digital computer. Its inefficiency stems from the number of operations and the use of floating-point calculations. Line drawing algorithms such as [[Bresenham's line algorithm|Bresenham]]'s or [[Xiaolin Wu's line algorithm|Wu]]'s are preferred instead. | |||
==List of line drawing algorithms== | |||
The following is a partial list of line drawing algorithms: | |||
*[[Digital Differential Analyzer (graphics algorithm)]] — Similar to the naive line-drawing algorithm, with minor variations. | |||
*[[Bresenham's line algorithm]] — optimized to use only additions (i.e. no divisions or multiplications); it also avoids floating-point computations. | |||
*[[Xiaolin Wu's line algorithm]] — can perform [[spatial anti-aliasing]] | |||
==References== | |||
Fundamentals of Computer Graphics, 2nd Edition, A.K. Peters by Peter Shirley | |||
{{DEFAULTSORT:Line Drawing Algorithm}} | |||
[[Category:Computer graphics algorithms]] | |||
{{Link FA|de}} |
Revision as of 05:02, 5 October 2013
Template:Expand German A line drawing algorithm is a graphical algorithm for approximating a line segment on discrete graphical media. On discrete media, such as pixel-based displays and printers, line drawing requires such an approximation (in nontrivial cases).
On continuous media, by contrast, no algorithm is necessary to draw a line. For example, oscilloscopes use natural phenomena to draw lines and curves.
The Cartesian slope-intercept equation for a straight line is Y= mx+b With m representing the slope of the line and b as the y intercept. Given that the two endpoints of the line segment are specified at positions (x1,y1) and (x2,y2). we can determine values for the slope m and y intercept b with the following calculations,
m=(y2-y1)/(x2-x1)
so, b=y1-m.x1
A naïve line-drawing algorithm
dx = x2 - x1
dy = y2 - y1
for x from x1 to x2 {
y = y1 + dy * (x - x1) / dx
plot(x, y)
}
It is assumed here that the points have already been ordered so that . This algorithm works just fine when (i.e., slope is less than or equal to 1), but if (i.e., slope greater than 1), the line becomes quite sparse with lots of gaps, and in the limiting case of , only a single point is plotted.
The naïve line drawing algorithm is inefficient and thus, slow on a digital computer. Its inefficiency stems from the number of operations and the use of floating-point calculations. Line drawing algorithms such as Bresenham's or Wu's are preferred instead.
List of line drawing algorithms
The following is a partial list of line drawing algorithms:
- Digital Differential Analyzer (graphics algorithm) — Similar to the naive line-drawing algorithm, with minor variations.
- Bresenham's line algorithm — optimized to use only additions (i.e. no divisions or multiplications); it also avoids floating-point computations.
- Xiaolin Wu's line algorithm — can perform spatial anti-aliasing
References
Fundamentals of Computer Graphics, 2nd Edition, A.K. Peters by Peter Shirley
Real Estate Agent Renaldo Lester from Saint-Jean-Chrysostome, has several hobbies which include leathercrafting, property developers in singapore apartment for sale, this contact form, and crochet. Loves to see new cities and places like Ruins of Loropéni.