0% found this document useful (0 votes)
260 views12 pages

Mid-Point Line Plotting Algorithm: Made By: Dimpy CHUGH (1833) Drishti Bhalla (1838)

The midpoint line algorithm is an incremental algorithm that plots lines between two points (x0,y0) and (x1,y1) by calculating the next y-value at each step based on the preceding pixel. It chooses pixels closest to the line with accuracy, consistency, and straightness using only basic arithmetic. At each step, it calculates the midpoint M between the previous pixel and the next potential pixels E and NE, and uses the sign of d=F(M) to determine if M is above or below the line, selecting E or NE as the next pixel accordingly. The value of d is updated at each step to guide the next pixel selection.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
260 views12 pages

Mid-Point Line Plotting Algorithm: Made By: Dimpy CHUGH (1833) Drishti Bhalla (1838)

The midpoint line algorithm is an incremental algorithm that plots lines between two points (x0,y0) and (x1,y1) by calculating the next y-value at each step based on the preceding pixel. It chooses pixels closest to the line with accuracy, consistency, and straightness using only basic arithmetic. At each step, it calculates the midpoint M between the previous pixel and the next potential pixels E and NE, and uses the sign of d=F(M) to determine if M is above or below the line, selecting E or NE as the next pixel accordingly. The value of d is updated at each step to guide the next pixel selection.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

MID-POINT LINE

PLOTTING ALGORITHM

MADE BY: DIMPY


CHUGH (1833)
DRISHTI BHALLA (1838)
INTRODUCTION
The Midpoint line algorithm is an incremental line plotting algorithm
i.e. at each step we make incremental calculations based on
preceding step to find next y value, in order to form a close
approximation to a straight line between two points.

ADVANTAGES
 It chooses the pixels closest to the line with accuracy, consistency
and straightness.
 It is very simple and requires only integer data and simple
arithmetic.
 It avoids division and multiplication and thus avoid truncate
errors.
BASIS OF ALGORITHM
 Given the previous pixel P, there are two candidates for the next pixel
closest to the line, E and NE .
 If the M is above the line, choose E. If M is below the line, choose NE.

Previous pixel Choices for Previous pixel Choices for


current pixel current pixel
DERIVATION
Assumptions:
Two end points of a line : (x0, y0) and (x1, y1)
Also, x0 < x1
Since, we are sampling in x-direction, so, for the next pixel , x-coordinate
will be xp+1 i.e. xp+ 1 and correspondingly we will calculate the value of y-
coordinate .

The implicit equation of a line is:


F(x, y) = a x + b y + c …….(1)
dx = x1 –x0
dy = y1 – y0
Slope intercept form a line is : y = m x+ B
y = (dy/dx) x +B
F(x,y)= (x)dy – (y)dx + Bdx ……(2)
Comparing (1) and(2) we get,
a= dy, b= -dx and c= Bdx
 For all points on the line, the solution to F(x, y) is 0.
 For all points above the line F(x, y) result in a negative number
 For all points below F(x, y) result in a positive number.
This relationship is used to determine the relative position of M.

M=(xp +1, yp+1/2)


d= F(M)= F(xp +1, yp+1/2)
- The sign of the decision variable ‘d’ is used to make the midpoint
determination for all remaining pixels.
 If d is negative, the midpoint is above the line and E is chosen
i.e. (xp +1, yp) will be plotted.
 If d is positive, the midpoint is below the line and NE is
chosen, i.e. we will plot (xp +1, yp+1).

As the algorithm progresses from pixel to pixel, d is calculated


with one of two pre-calculated values based on the E/NE decision.
Case 1: If E is chosen (d<0)
dnew= F(xp +2, yp+1/2)
= a(xp +2) + b(yp+1/2) +c
dold = a(xp+1) + b(yp+1/2)+c
∆d = dnew -dold
= a(xp +2)- a(xp+1)+ b(yp+1/2)- b(yp+1/2)+c-c
= a(xp) +2a –a(xp) –a = a.
Therefore, dnew = dold + dy

Case 2: If NE is chosen (d>0)


dnew= F(xp +2, yp+3/2)
= a(xp +2) + b(yp+3/2) +c
dold = a(xp+1) + b(yp+1/2)+c
∆d = dnew -dold
= a(xp +2)- a(xp+1)+ b(yp+3/2)- b(yp+1/2)+c-c
= a(xp) +2a –a(xp) –a+ b(yp) +3/2b –
b(yp) -1/2b
= a+b
Therefore, dnew = dold + dy-dx
Derivation for calculating the initial value for d0

d0= F(x0+1 , y0+1/2)


= a(x0+1) + b(y0+1/2) +c
= ax0+ by0+c +a+ b/2
= F(x0,y0) + a+ b/2
= 0 + a+ b/2 ( a= dy, b= -dx)
Therefore, d0 = dy - dx/2
ALGORITHM (|M|<1)
1) Input (x0,y0) and (x1,y1)
2) Calculate dy and dx
3) d= dy-(dx/2)
4) x= x0 and y=y0
5) Plot(x , y)
6) While(x<x1)
7) x=x+1
8) If(d<0)
9) d=d+dy
10) else
11) d=d+dy-dx
12) y=y+1
13) Plot(x,y)
ALGORITHM (|M|>1)
1) Input (x0,y0) and (x1,y1)
2) Calculate dy and dx
3) d= dx-(dy/2)
4) x= x0 and y=y0
5) Plot(x , y)
6) While(y<y1)
7) y=y+1
8) If(d<0)
9) d=d+dx

10) else
11) d=d+dx-dy
12) x=x+1
13) Plot(x,y)
EXAMPLE Draw a line from (4,8) to (9,12)
and plot the points accordingly.
Initially:
(x,y)=(4,8)
(x1,y1)=(9,12)
dy=(y1-y0)= (12-8)= 4
dx= (x1-x0)=(9-4)= 5
Now, the first decision variable
(d0)= dy- dx/2
= 4-5/2
= 1.5

As d0 >0 , NE is chosen and the next pixel to be plotted will be


( x+1,y+1) i.e. (5,9)
-> d1= d0+ (dy-dx)
= 1.5+ 4-5 = 0.5
As d1 >0 , again NE is chosen and the next pixel to be plotted will be
( x+1,y+1) i.e.(6,10)
-> d2=d1+ dy-dx
= 0.5+4-5 = -0.5
As d2 <0 , E is chosen and the next pixel to be plotted will be
( x+1,y) i.e. (7,10)
-> d3= d2+dy
= -0.5 + 4 = 3.5
As d3 >0 , NE is chosen and the next pixel to be plotted will be ( x+1,y+1)
i.e. (8,11)
-> d4= d3+dy-dx
= 3.5+ 4-5 = 2.5
As d4 >0 , NE is chosen and the next pixel to be plotted will be ( x+1,y+1)
i.e. (9,12)
Now as we have reached our second end point i.e.
(x1,y1)= (9,12) ,we will stop the procedure.
Therefore, the plotted points on the grids will be (5,9) ,(6,10),
( 7,10) ,(8,11) and (9,12).
THANK YOU!

You might also like