Professional Documents
Culture Documents
figs/NITr
Table of contents
1 Parabola Drawing
Parabola Drawing
Midpoint Parabola Drawing Algorithm
figs/NITr
Equation of a parabola
figs/NITr
Drawing a parabola
figs/CircleDrawWithYasFx.png figs/CircleDrawWithXasFy.png
Drawing a parabola
figs/NITr
Drawing a parabola
figs/MidpointCircleSymmetry.png
figs/NITr
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
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
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
Finding p10
p10 figs/MidpointDecision_parabol
= fparabola ( 21 , 1)
= 12 4a 12
= 1 2a
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
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.
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
figs/NITr
figs/NITr