CG Parabola PDF

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 18

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

You might also like