Parabola Drawing
CS335 Computer Graphics
Parabola Drawing Algorithms
Dr. Sambit Bakshi
Computer Science & Engineering, NIT Rourkela
figs/NITr
Dr. Sambit Bakshi CS335 Computer Graphics
Parabola Drawing
Table of contents
1 Parabola Drawing
Parabola Drawing
Midpoint Parabola Drawing Algorithm
figs/NITr
Dr. Sambit Bakshi CS335 Computer Graphics
Parabola Drawing
Parabola Drawing
Midpoint Parabola Drawing Algorithm
Equation of a parabola
General parabola drawing problem: parameters are focus and
vertex
(y k)2 = 4a(x h)
p
y = k 4a(x k)
x = h + (y k)2 /4
Creates uneven spacing if plotted!!!
figs/NITr
Dr. Sambit Bakshi CS335 Computer Graphics
Parabola Drawing
Parabola Drawing
Midpoint Parabola Drawing Algorithm
Drawing a parabola
figs/CircleDrawWithYasFx.png figs/CircleDrawWithXasFy.png
Figure: Plot withp Figure: Plot with
y = f (x) = k 4a(x h) x = f (y ) = h + (y k)2 /4a figs/NITr
Dr. Sambit Bakshi CS335 Computer Graphics
Parabola Drawing
Parabola Drawing
Midpoint Parabola Drawing Algorithm
Drawing a parabola
How to eliminate uneven spacing?
parametric form:
y = k 2at
x = h + at 2
Computation can be reduced by exploiting symmetry
figs/NITr
Dr. Sambit Bakshi CS335 Computer Graphics
Parabola Drawing
Parabola Drawing
Midpoint Parabola Drawing Algorithm
Drawing a parabola
figs/MidpointCircleSymmetry.png
figs/NITr
Dr. Sambit Bakshi CS335 Computer Graphics
Parabola Drawing
Parabola Drawing
Midpoint Parabola Drawing Algorithm
Drawing a parabola
p
y =k 4a(x k)
x = h + (y k)2 /4
Each pixel computation would need 2 addition (or
subtraction), 2 multiplication (or division) and 3
exponentiation (or root) operation
figs/NITr
Dr. Sambit Bakshi CS335 Computer Graphics
Parabola Drawing
Parabola Drawing
Midpoint Parabola Drawing Algorithm
Midpoint Parabola Drawing
fparabola = y 2 4ax
Without loss of generalization, we consider vertex at (0, 0)
< 0; if (x, y ) is inside the boundary
fparabola (x, y ) = = 0; if (x, y ) is on the boundary
> 0; if (x, y ) is outiside the boundary
dy 2a
Slope of parabola at (x, y ) = dx = y
figs/NITr
Dr. Sambit Bakshi CS335 Computer Graphics
Parabola Drawing
Parabola Drawing
Midpoint Parabola Drawing Algorithm
Midpoint Parabola Drawing
The algorithm takes an input say
(x, y ) and starts from (0, 0) and
move towards (x, y )
We move from Region 1 to 2 when
dy
= 2a 1, i.e. y 2a figs/ellipse_region.png
dx y
Midpoint parameters are formed in
different way in two regions
Region 1: Change in x < Change in
y
Region 2: Change in y < Change in
x
Figure: Rationally choosing the
independent axes figs/NITr
Dr. Sambit Bakshi CS335 Computer Graphics
Parabola Drawing
Parabola Drawing
Midpoint Parabola Drawing Algorithm
Finding Decision Parameter in Region 1
Assuming (xk , yk ) is plotted, we
want to plot (xk+1 , yk+1 )
We consider yk+1 = yk + 1 MidpointDecision_parabolaRegi
and we check if xk+1 = xk or
xk+1 = xk + 1
p1k
= fparabola (xk + 21 , yk + 1)
= (yk + 1)2 4a(xk + 21 )
Figure: Decision parameter in
Region 1 figs/NITr
Dr. Sambit Bakshi CS335 Computer Graphics
Parabola Drawing
Parabola Drawing
Midpoint Parabola Drawing Algorithm
Finding Decision Parameter in Region 1
p1k
= fparabola (xk + 21 , yk + 1)
= (yk + 1)2 4a(xk + 21 )
p1k+1
= fparabola (xk+1 + 12 , yk+1 + 1)
= (yk+1 + 1)2 4a(xk+1 + 12 ) figs/MidpointDecision_ellipse
p1k+1
= p1k + 1 + 2yk+1 + 4a(xk xk+1 )
IF p1k < 0
xk+1 = xk
p1k+1 = p1k + 1 + 2yk+1
OTHERWISE
xk+1 = xk + 1
p1k+1 = p1k + 1 + 2yk+1 4a Figure: Decision parameter in
Region 1 figs/NITr
Dr. Sambit Bakshi CS335 Computer Graphics
Parabola Drawing
Parabola Drawing
Midpoint Parabola Drawing Algorithm
Finding p10
p10 figs/MidpointDecision_parabol
= fparabola ( 21 , 1)
= 12 4a 12
= 1 2a
Figure: Decision parameter in
Region 1 figs/NITr
Dr. Sambit Bakshi CS335 Computer Graphics
Parabola Drawing
Parabola Drawing
Midpoint Parabola Drawing Algorithm
Finding Decision Parameter in Region 2
Assuming (xk , yk ) is plotted, we
want to plot (xk+1 , yk+1 )
We consider xk+1 = xk + 1 figs/MidpointDecision_ellipse
and we check if yk+1 = yk or
yk+1 = yk + 1
p2k
= fparabola (xk + 1, yk + 21 )
= (yk + 12 )2 4a(xk + 1)
Figure: Decision parameter in
Region 2 figs/NITr
Dr. Sambit Bakshi CS335 Computer Graphics
Parabola Drawing
Parabola Drawing
Midpoint Parabola Drawing Algorithm
Finding Decision Parameter in Region 2
p2k
= fparabola (xk + 1, yk + 21 )
= (yk + 12 )2 4a(xk + 1)
p2k+1
= fparabola (xk+1 + 1, yk+1 + 12 )
= (yk+1 + 12 )2 4a(xk+1 + 1)
figs/MidpointDecision_ellipse
p2k+1
=
p2k +(yk+1 )2 (yk )2 +(yk+1 yk )4a
IF p2k < 0
yk+1 = yk + 1
p2k+1 = p2k 4a + 2yk+1
OTHERWISE
yk+1 = yk
p2k+1 = p2k 4a Figure: Decision parameter in
Region 2 figs/NITr
Dr. Sambit Bakshi CS335 Computer Graphics
Parabola Drawing
Parabola Drawing
Midpoint Parabola Drawing Algorithm
Finding p20
p20 figs/MidpointDecision_ellipse
= fparabola (x0 + 1, y0 + 21 )
= (y0 + 21 )2 4a(x0 + 1)
(x0 , y0 ) is the last point of Region 1.
Figure: Decision parameter in
Region 2 figs/NITr
Dr. Sambit Bakshi CS335 Computer Graphics
Parabola Drawing
Parabola Drawing
Midpoint Parabola Drawing Algorithm
Midpoint parabola drawing algorithm
1 Input: a, x, y
2 (x0 , y0 ) (0, 0) 10 (x0 , y0 ) (xk , yk )
3 Load (x0 , y0 ) 11 Load (x0 , y0 )
4 p10 1 2a 12 p20 = (y0 + 12 )2 4a(x0 + 1)
5 k0 13 k0
6 if (p1k < 0) 14 if (p2k > 0)
xk+1 xk , yk+1 yk + 1, xk+1 xk + 1, yk+1 yk + 1,
Load (xk , yk+1 ) Load (xk + 1, yk + 1)
p1k+1 = p1k + 1 + 2yk+1 p2k+1 = p2k 4a + 2yk+1
7 Otherwise 15 Otherwise
xk+1 xk + 1, yk+1 yk + 1, xk+1 xk + 1, yk+1 yk ,
Load (xk + 1, yk + 1) Load (xk + 1, yk )
p1k+1 = p1k + 1 + 2yk+1 4a p2k+1 = p2k 4a
8 k (k + 1) 16 k (k + 1)
9 Repeat steps 6,7,8 while yk < 2a 17 Repeat steps 14,15,16 while yk < y
and yk < y
figs/NITr
Dr. Sambit Bakshi CS335 Computer Graphics
Parabola Drawing
Parabola Drawing
Midpoint Parabola Drawing Algorithm
A simple example by MPD
Find the coordinate of raster points on the parabola
with focus a = 1 and vertex (0, 0) till (10, 6).
figs/NITr
Dr. Sambit Bakshi CS335 Computer Graphics
Parabola Drawing
Parabola Drawing
Midpoint Parabola Drawing Algorithm
A simple example by MPD
k p1k xk+1 yk+1
0 -1 0 0
p0 = 1 2 2 = 3 1 0 0 1
(x0 , y0 ) (0, 0) for Region 1.
k p2k xk+1 yk+1
We move out of Region 1 at 0 -2 1 2
k=1 as yk > 2a. The last 1 2 3 3
2 -2 3 3
point of Region 1 is (0, 1). 3 4 4 4
4 0 5 4
5 -4 6 4
(x0 , y0 ) (0, 1) for Region 2.
6 4 7 5
p20 = f (0 + 1, 1 + 0.5) = 2 7 0 8 5
We stop when x = 10 8 -4 9 5
9 6 10 6
figs/NITr
Dr. Sambit Bakshi CS335 Computer Graphics