Bresenham Algorithms

IT- 601: Computer Graphics
Lecture-00
Jesmin Akhter
Lecturer,IIT
Jahangirnagar University,
Savar, Dhaka,Bangladesh
7/28/2017
Course Overview

Tutorial 01
 Introduction(L00)
 Scan Conversion(L01+L02+L03)

Two – Dimnnsional Traformations(L04+L05+L06).
 --------------------------------------------------------------- Tutorial 02

Two – Dimnnsional Viewing and Clipping (L07+L08+L09)

Three – Dimnnsional Traformations(L10+L11+L12)
 Mathematics of Projection(L13+L14+L15)
 ---------------------------------------------------------------- Tutorial 03
 Geometric Representation(L16+L17)
 Hidden Surfaces(L18+L19))
 Color Model(L20)
 -------------------------------------------------------------- Mathematics for two dimensional Computer Graphics(L21)
 Image Representation(L22)
2.5 Sets
2 Sets
1.5 Sets
1 Set
Course Policy
• No late homework is acceptable.
• Cheating directly affects the reputation of
Department and the University and lowers the
morale of other students.
• Cheating in homework and exam will not be
tolerated.
• An automatic grade of 0 will be assigned for any
student caught cheating.
• Presenting another person’s work as your own
constitutes cheating.
Primary Focus
Develop thinking ability.
– problem solving skills.
– formal thinking.
Goals
• Be very familiar with a collection of Computer Graphics
algorithms.
• Be intimately familiar with mathematics for Computer
Graphics
• Be able to apply techniques in practical problems.
Intro 5
Textbook & References
• Schaum’s ouTlines series, THEORY AND PROBLEM OF
COMPUTER GRAPHICS ,Second Edition,McGraw Hill.
How to Succeed in this Course
• Start early on all assignments. DON'T
procrastinate.
• Complete all reading before class.
• Participate in class.
• Think in class.
• Review after each class.
• Be formal and precise on all problem sets and
in-class exams.
IT- 601: Computer Graphics
Chapter 3
Scan Conversion
Lecture-01
Jesmin Akhter
Lecturer,IIT
Jahangirnagar University,
Savar, Dhaka,Bangladesh
7/28/2017
Scan Conversion
• Graphics System convert
– each primitive(points ,lines, circles, ellipses etc.)
from its geometric definition into a set of pixels
that make up the picture in the image space.
– This Conversion task is referred to as Scan
Conversion.
Scan Converting a point
• (x,y) where x and y are real numbers within an
image area.
• Need to be scan converted at pixel location
( x, y )
Scan Converting a line
• Line drawing is accomplished by calculating
intermediate positions along the line path between
two specified end points.
• It is defined by the line equation y=mx+b, m is slope
and b the y intercept of the line.
• Two end points are p1(x1,y1) and p2(x2,y2)
• Line equation describes the coordinates of all the
points that lie between the two end points.
y
y=mx+b
b
p2(x2,y2)
p1(x1,y1)
x
Direct use of the Line Equation
• Scan convert p1 and p2 to pixel coordinates
(x1 , y1 ) and (x2 , y2 ) then set m  (y2 - y1 )/( x2 - x1 )
and b  y1  mx1 .
• If | m | 1, then for every integer value of x between and
excluding x1 andx 2, calculate the corresponding value of y
using the equation and scan convert (x,y).
• If | m | 1, then for every integer value of x between and
excluding y1 andy2, calculate the corresponding value of x
using the equation and scan convert (x,y).
DDA Algorithm
• The digital differential analyzer (DDA) is an incremental scan-conversion
method.
• Characterized by Performing calculations at each step using results from
the preceding step.
• At each step i calculate (xi,yi) point on the line.
• Next point (xi+1,yi+1)
• y / x  m, wherey  yi 1  yi andx  xi 1  xi ,We have
yi 1  yi  mx
or
xi 1  xi  y / m
DDA Algorithm
Desired Line
(xi+1, Round(yj+m))
(xi, yj)
(xi+1, yj+m)
(xi, Round(yj))
y2
y1
x1
x2
DDA Algorithm
• DDA (“Digital Differential Analyzer”)
• Assume 0  m  1 .
yi 1  mxi 1  B
 m( xi  x)  B
 yi  mx
yi 1  yi  m
x  1
(xi,Round(yi+m))
Desired Line
(xi,yi)
(xi,Round(yi))
(xi,yi +m)
void Line(int x0, int y0, int x1, int y1, int value) {
double y = y0;
double m = (y1 – y0) / (x1 – x0);
// 0 <= m <= 1
for (int x = x0; x <= x1; x++) {
WritePixel(x, Round(y), value);
y += m;
}
Require to eliminate floating point operations & variables
}
DDA ALGORITHM
• DDA algorithm is faster than the direct use of the line equation since it
calculates points on the line without any floating point multiplication
• Cumulative error occurs.