0% found this document useful (0 votes)
53 views21 pages

11 Mrs. Sadia Patka Dda Line Drawing Algorithm

The document provides a syllabus for a Computer Graphics course offered at Anjuman College of Engineering & Technology. The syllabus covers 6 units that include topics such as 2D and 3D graphics algorithms, transformations, projections, hidden surface removal, curves and surfaces. The objectives are to introduce fundamental CG concepts and theory, present important algorithms, and provide basics of OpenGL programming. Upon completing the course, students will be able to explain and apply various CG topics including 2D drawing, 3D viewing transformations, and basic ray tracing algorithms. The document also provides details of the Digital Differential Analyzer line drawing algorithm with examples.

Uploaded by

sova jetto
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
53 views21 pages

11 Mrs. Sadia Patka Dda Line Drawing Algorithm

The document provides a syllabus for a Computer Graphics course offered at Anjuman College of Engineering & Technology. The syllabus covers 6 units that include topics such as 2D and 3D graphics algorithms, transformations, projections, hidden surface removal, curves and surfaces. The objectives are to introduce fundamental CG concepts and theory, present important algorithms, and provide basics of OpenGL programming. Upon completing the course, students will be able to explain and apply various CG topics including 2D drawing, 3D viewing transformations, and basic ray tracing algorithms. The document also provides details of the Digital Differential Analyzer line drawing algorithm with examples.

Uploaded by

sova jetto
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 21

ANJUMAN COLLEGE OF ENGINEERING & TECHNOLOGY

Department of Computer Science & Engineering


SUBJECT : COMPUTER GRAPHICS
5TH SEMESTER

Prepared By:
Ms. Sadia Patka
Asst. Professor, CSE Dept.
SYLLABUS:
 Unit 1: Introduction to Computer Graphics Overview of Computer
Graphics, Computer Graphics Application and Software, Graphics
Areas, Graphics Pipeline, Graphics API’s, Numerical issues, Efficiency
Display and Hardcopy Technologies, Display Technologies – Raster
scan Display System, Video Controller – Vector scan display system,
Random Scan Display Processor, Input Devices for Operator Interaction,
Image Scanners
 Unit 2: Basic Raster Graphics Algorithms for Drawing 2D primitives,
aliasing and ant aliasing, Polygon filling methods: Scan Conversion
Algorithms: Simple Ordered edge list, Edge Fill, Fence fill and Edge
Flag Algorithm. ,Seed fill Algorithms: Simple and Scan Line Seed Fill
Algorithm, Halftoning techniques
 Unit 3: Graphics Programming using OPENGL: Why OpenGL,
Features in OpenGL, OpenGL operations, Abstractions in OpenGL –
GL, GLU & GLUT, 3D viewing pipeline, viewing matrix specifications,
a few examples and demos of OpenGL programs, Animations in
openGL
 Unit 4: 2D Clipping algorithms for regular and irregular windows:
Sutherland Cohen Outcode, Sutherland Cohen Subdivision, Mid-Point
subdivision, Cyrus Beck and Sutherland Hodgeman, Cohen-Sutherland
Polygon clipping Algorithm. Clipping about Concave regions. 2D
Transformations, Translation, Rotation, Reflection, Scaling, Shearing
Combined Transformation, Rotation and Reflection about an Arbitrary
Line
 Unit 5: Normalized Device Coordinates and Viewing
Transformations, 3D System Basics and 3D Transformations, 3D
graphics projections, parallel, perspective, viewing transformations.
3D graphics hidden surfaces and line removal, painter’s algorithm,
Z -buffers, Warnock’s algorithm.
 Unit 6: Basic Ray tracing Algorithm, Perspective, Computing
Viewing Rays, Ray-Object Intersection Shading, A Ray tracing
Program, Shadows, Ideal Specular Reflection. Curves and Surfaces:
Polygon Mesh, Parametric Cubic Curves, Parametric Bicubic
Surfaces, Quadratic Surface, Bezier Curves and B-spline curves.
COURSE OBJECTIVES:
1) The main objective of the course is to introduce students with
fundamental concepts and theory of computer graphics (CG).
2) It presents the important drawing algorithm, polygon fitting,
clipping and 2D transformation curves and an introduction to
3D transformation.
3) It provides the basics of OpenGL application programming
interface which allows students to develop programming
skills in CG.
COURSE OUTCOMES:
Upon the completion of the course students will be able to :-
CO1: Explain the applications, areas, and graphic pipeline, display
and hardcopy technologies.
CO2: Apply and compare the algorithms for drawing 2D images
also explain aliasing, anti aliasing and half toning techniques.
CO3: Discuss OpenGL application programming Interface and
apply it for 2D & 3D computer graphics.
CO4: Analyze and apply clipping algorithms and transformation on
2D images.
CO5: Solve the problems on viewing transformations and explain
the projection and hidden surface removal algorithms.
CO6: Explain basic ray tracing algorithm, shading, shadows, curves
and surfaces and also solve the problems of curves.
Digital Differenti al
Analyzer (DDA)
LINE DRAWING
ALGORITHM
WITH SOLVED EXAMPLES
DDA LINE DRAWING ALGORITHM
 The line (vector) generation algorithms which determine the
pixels that should be turned ON are called as digital
differential analyzer (DDA).
 It is one of the technique for obtaining a rasterized straight
line.
 This algorithm can be used to draw the line in all the
quadrants.
DDA ALGORITHM
Assumption:
1.(x1, y1) and (x2, y2) are the two end points of a line and are
not equal.
2.Floor integer function is used to convert the real values into
integer value.
e.g.: if value is +8.5 then it is converted to 8 and
if value is -8.5 then it is converted to 9.
3. Sign function is used which returns +1, 0, -1 for the arguments
>0, =0, <0.
e.g.: sign(5) = +1 , sign(0) = 0,
sign(-1) = -1, sign (1) = 1
CONTD….

Step 1: Approximate the line length


if abs(x2-x1)>= abs(y2-y1) then
length = abs(x2-x1)
else
length = abs(y2-y1)
end if
 
Step 2: Decide increment
Δx = (x2-x1) / length
Δy = (y2-y1) / length
 
CONTD….
Step 3: Decide flow (round the values rather than truncate to handle
central pixel addressing correctly)
x = x1 + 0.5 * sign(Δx)
y = y1 + 0.5 * sign(Δy)

Step 4: Begin main loop


i=1
while (i <= length)
setpixel (intger x, integer y)
x = x + Δx
y = y + Δy
i=i+1
end while
finish
Examples
Q. 1 Rasterize the line from (0, 0) to (5,5) using
DDA algorithm.
Solution:
Solution of Q.1 CONTD….
Solution of Q.1 Result :-
CONTD….
The points obtain
to rasterize a line
from (0, 0) to (5, 5)
are :
(0, 0)
(1, 1)
(2, 2)
(3, 3)
(4, 4)
Note
• In Question 1, the end points to draw the line
are given directly so, the steps of the algorithm
are followed to implement it.
• But if the end points are not given and instead
the equation is given then first we have to find
the end points of a line from that equation and
then follow the steps of algorithm.
• The procedure is demonstrated in Q.2 by
solving the question asked in university paper.
Q. 2 Rasterize the line for the equation
x/2 + y/10 = 1 using DDA line algorithm.
Solution: Given is x/2 + y/10 = 1 --------eq. (1)
Put x = 0 in eq. 1 , then y = 10
the 1st end point (x1,y1) is (0,10)
Put y = 0 in eq. 1 , then x = 2
the 2nd end point (x2,y2) is (2,0)
Here,
x1=0 , y1=10 , x2=2 , y2=0
Solution of Q.2 CONTD….
Step 1: abs(x2-x1) = abs(2-0) = 2
abs(y2-y1) = abs(0-10) = 10
Here, abs (y2-y1)> abs(x2-x1)
length =10
Step 2: Δx = (x2-x1) / length = (2-0)/10 = 0.2
Δy = (y2-y1) / length = (0-10)/10 = -1
Solution of Q.2 CONTD….
Step 3: x = x1 + 0.5 * sign(Δx)
x = 0 + 0.5 * sign (0.2)
x = 0 + 0.5 * 1
 x = 0.5
y = y1 + 0.5 * sign(Δy)
y = 10 + 0.5 * sign (-1)
y = 10 + 0.5 * -1
 x = 9.5
Solution of Q.2 CONTD….
Step i Set pixel x y
4: 1 (0,9) 0.5 9.5
2 (0,8) 0.7 8.5
3 (0,7) 0.9 7.5
4 (1,6) 1.1 6.5
5 (1,5) 1.3 5.5
6 (1,4) 1.5 4.5
7 (1,3) 1.7 3.5
8 (1,2) 1.9 2.5
9 (2,1) 2.1 1.5
10 (2,0) 2.3 0.5
11 END 2.5 -0.5
Solution of Q.2 Result :-
CONTD…. 10
The points obtain to 9
rasterize a line for
the equation 8

x/2 + y/10 = 1 are : 7


(0,9) 6
(0,8) 5
(0,7)
4
(1,6)
(1,5) 3
(1,4) 2
(1,3)
1
(1,2)
(2,1) 0
(2,0) 1 2 3 4 5 6
Advantages and Disadvantages of DDA
 Advantages :
1. Simplest line drawing algorithm
2. No special skills required for its implementation
3. DDA draws the line faster than drawing the line by directly using the
line equation.
 Disadvantages :
1. It dependents on orientation which makes the end point accuracy
poor.
2. It requires floating point addition to determine each successive point
which is time consuming.
3. Error due to limited precision in floating point representation may
cause calculated points to shift away from their actual position when
the line is relatively long.
THANK YOU

You might also like