Numerical of DDA Algorithm

Numerical of DDA Algorithm

Numerical of DDA Algorithm

Let us understand how DDA Algorithm works by taking some examples and solving them too. Just keep in mind two things one, Y=mx+b is the line equation. Second, If m is less than one increase X and calculate Y. If m is more than 1 then increase Y and calculate X. DDA Algorithm is explained by taking some examples.

Remember the steps:

  • If slope (m) is less than 1 (m<1) then increment x as x1+1 and calculate y as y1=y1+m
  • If slope (m) is greater than 1 (m>1) then increment y as y1+1 and calculate x1=x1+1/m
  • If slope is equal to 1 (m=1) then increment both x and y. x1=x1+1 , y1=y1+1.

DDA-  Digital Differential Analyser – The Algorithm

S-1:  Lets take the starting points of line as (x1,y1) and ending points as (x2,y2)

S-2: m=(y2-y1)/(x2-x1) 

S-3: If slope (m) is less than 1 (m<1) then increment x as x1+1 and calculate y as y1=y1+m

S-4: If slope (m) is greater than 1 (m>1) then increment y as y1+1 and calculate x1=x1+1/m

S-5 : If slope is equal to 1 (m=1) then increment both x and y. x1=x1+1 , y1=y1+1

S-6 : Repeat the steps till end of line (x2,y2) is reached.

 

—————————————————————–

Problem Statement

Draw a line from (1,1) to (8,7) using DDA and BLA algorithms.


DDA-  Digital Differential Analyser

This case is for slope (m) less than 1. Slope (m) =(7-1)/(8-1) = 6/7 .

S-1:  x1=1; y1=1; x2=8; y2=7.

S-2: m=(7-1)/(8-1) = 6/7 which is less than 1.

S-3: As m (6/7) is less than 1 therefore x is increased and y is calculated.

S-4 : The step will be x1=x1+1 and y1= y1+6/7 

S-5 : The points genrated would be x1=1+1 and Y1=1+(5/7) => 1+0.9=>1.9=> approx 2. So X 1=2 and Y1= ~2

S.No. X1 Y1 Pixel Plotted
1 2 2 2,2
2 3 2+6/7 = 2.9 3,3
3 4 2.9 + 6/7 = 3.8 4,4
4 5

3.8 + 6/7 = 4.7

5,5
5 6 4.7 + 6/7 = 5.6 6,6
6 7 5.6 + 6/7 = 7.0 7,7

The algorithm will stop here as the x value has reached 7.

—————————————————————–

Lets take another example.

Draw a line using DDA Algorithm from (0,0) to (4,6)

This case is for slope (m) greater than 1. Slope (m) =(6-0)/(4-0) = 6/4 .

S-1:  x1=0; y1=0; x2=4; y2=6

S-2: m=(6-0)/(4-0) = 6/4 which is more than 1.

S-3: As m (6/4) is greater than 1 therefore y is increased and x is calculated.

S-4 : Now increase the value of y and calculate value of x.

  • To calculate x, take line equation and find x , x2=x1+1/m
  • The step will be y1=y1+1 and x1 =x1+1/( 6/4) , After Simplification, Every time y1=y1+1 and x1=x1+4/6
StepY1X1Pixel Plotted
100(0,0)
21x1= (0)+4/6=0.67 =1(1,1)
320.67+4/6 = 1.34(1,2)
431.34+4/6=2.01(2,3)
542.01+4/6= 2.68(3,4)
652.68+4/6=3.35(3,5)
763.35+4/6=4.02(4,6)

The algorithm will stop here because the Y and X values have reached the End point (4,6).

Example -3: Draw a line from (0,0) to (7,7) using DDA Algorithm

This case is for slope (m) equals 1. Slope (m) =(7-0)/(7-0) = 7/7 .

S-1:  x1=0; y1=0; x2=7; y2=7.

S-2: m=(7-0)/(7-0) = 7/7 which is equal to 1.

S-3: As m equals to 1 (m=1) therefore x will be increased by 1 and y will be incremented by m.

S-4 : The step will be x1=x1+1 and y1= y1+1. This would be a 45 degree line where x and y both have equal incremented value.

S-5 : The points generated would be x1=1+1 and Y1=1+(1) => So X 1=2 and Y1= 2

S.No.X1Y1Pixel Plotted
1222,2
232+1 = 33,3
343 + 1 = 44,4
45 4 + 1 =5 5,5
565 + 1 =66,6
676 + 1 = 7.07,7

The algorithm will stop here as the x and y values have reached 7. This would be a straight line dividing the first quadrant in two equal halves.

Example -4 

Use DDA Algorithm to draw a line from (2,3) to (9,8).

S-1: x1=2, y1=3 and x2=9 , y2=8.

S-2: Calculate Slope m = (8-3)/(9-2) = 5/7, which is less than 1.

S-3: Since m is less than one that means we would increase x and calculate y.

S-4: So new x would be equal to old x plus 1 🙂 and calculate y as new y = old y +m(slope). — Easy to understand, We mean the following 

x1=x1+1 and y1=y1+(5/7)

S.No.X1Y1Pixel Plotted
1232,3
233+5/7 => 26/7 => 26/7=>3.713,4
343.71 + 5/7 = 4.424,4
45 4.42 + 5/7 =5 .135,5
565.13 + 5/7 =5.846,6
675.84 + 5/7 = 6.557,7
786.55+5/7=7.268,7
897.26+5/7=7.979,8

The algorithm would stop here as we have reached the end point of the line (9,8)

We have disabled - Right- Click - How about stay to read :)