Hyperbola Final PDF

You might also like

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

Hyperbola Drawing

CS335 Computer Graphics


Hyperbola Drawing Algorithms

Dr. Sambit Bakshi

Computer Science & Engineering, NIT Rourkela

Dr. Sambit Bakshi CS335 Computer Graphics


Hyperbola Drawing

Table of contents

1 Hyperbola Drawing
Hyperbola Drawing
Midpoint Hyperbola Drawing
Midpoint Hyperbola Drawing Algorithm

Dr. Sambit Bakshi CS335 Computer Graphics


Hyperbola Drawing
Hyperbola Drawing Midpoint Hyperbola Drawing
Midpoint Hyperbola Drawing Algorithm

Equation of a hyperbola

General Hyperbola drawing problem: parameters are center,


major axis and minor axis
(x xc )2 /a2 (y yc )2 /b 2 = 1
Creates uneven spacing if plotted!!!

Dr. Sambit Bakshi CS335 Computer Graphics


Hyperbola Drawing
Hyperbola Drawing Midpoint Hyperbola Drawing
Midpoint Hyperbola Drawing Algorithm

Drawing a hyperbola

Figure: Mid Point Hyperbola Figure: Bresenhams Hyperbola

Dr. Sambit Bakshi CS335 Computer Graphics


Hyperbola Drawing
Hyperbola Drawing Midpoint Hyperbola Drawing
Midpoint Hyperbola Drawing Algorithm

Drawing a Hyperbola

How to eliminate uneven spacing?


parametric polar form:
x = a cosh
y = b sinh
This form holds good for the right wing.
Exploring symmetry left wing can be drawn.

Dr. Sambit Bakshi CS335 Computer Graphics


Hyperbola Drawing
Hyperbola Drawing Midpoint Hyperbola Drawing
Midpoint Hyperbola Drawing Algorithm

Drawing a Hyperbola

How to vary
Computation can be
reduced by exploiting
symmetry

Figure: Parametric Hyperbola drawing

Dr. Sambit Bakshi CS335 Computer Graphics


Hyperbola Drawing
Hyperbola Drawing Midpoint Hyperbola Drawing
Midpoint Hyperbola Drawing Algorithm

Midpoint Hyperbola Drawing

fhyperbola = b 2 x 2 a2 y 2 a2 b 2
Without loss of generalization, we consider center at (0, 0)


< 0; if (x, y ) is inside the boundary
fHyperbola (x, y ) = = 0; if (x, y ) is on the boundary
> 0; if (x, y ) is outiside the boundary

Dr. Sambit Bakshi CS335 Computer Graphics


Hyperbola Drawing
Hyperbola Drawing Midpoint Hyperbola Drawing
Midpoint Hyperbola Drawing Algorithm

Finding Decision Parameter

Dr. Sambit Bakshi CS335 Computer Graphics


Hyperbola Drawing
Hyperbola Drawing Midpoint Hyperbola Drawing
Midpoint Hyperbola Drawing Algorithm

Finding Decision Parameter

Assuming (xk , yk ) is plotted, we want to plot (xk+1 , yk+1 )


For region 1 : 0 < m <= 1
For region 2 : 1 < m <

Dr. Sambit Bakshi CS335 Computer Graphics


Hyperbola Drawing
Hyperbola Drawing Midpoint Hyperbola Drawing
Midpoint Hyperbola Drawing Algorithm

Finding Decision Parameter in Region 1

FOR REGION 1 : 0 < m <= 1


Without loss of generalization, we consider xk+1 = xk + 1
and we check if yk+1 = yk or yk+1 = yk + 1
pk
= fhyperbola (xk + 1, yk + 21 )
= b 2 (xk + 1)2 a2 (yk + 12 )2 a2 b 2
pk+1
= fhyperbola (xk+1 + 1, yk+1 + 12 )
= b 2 [(xk + 1) + 1]2 a2 (yk+1 + 12 )2 a2 b 2
pk+1 = pk + 2b 2 (xk + 1) + a2 [(yk + 12 )2 (yk+1 + 21 )]2 + b 2

Dr. Sambit Bakshi CS335 Computer Graphics


Hyperbola Drawing
Hyperbola Drawing Midpoint Hyperbola Drawing
Midpoint Hyperbola Drawing Algorithm

Finding Decision Parameter

When pk was negative, i.e. yk+1 = yk + 1,


pk+1 = pk + b 2 a2 + 2[(b 2 (xk + 1)) a2 (yk + 12 )]
When pk was positive, i.e. yk+1 = yk ,
pk+1 = pk + b 2 + 2b 2 (xk + 1)

Dr. Sambit Bakshi CS335 Computer Graphics


Hyperbola Drawing
Hyperbola Drawing Midpoint Hyperbola Drawing
Midpoint Hyperbola Drawing Algorithm

Finding p10

p1 0
= fhyperbola (1, 12 )
= b 2 (1)2 a2 ( 12 )2 a2 b 2
2
= b 2 a4 a2 b 2

Dr. Sambit Bakshi CS335 Computer Graphics


Hyperbola Drawing
Hyperbola Drawing Midpoint Hyperbola Drawing
Midpoint Hyperbola Drawing Algorithm

Finding Decision Parameter in Region 2

FOR REGION 2 : 1 < m <=


Without loss of generalization, we consider yk+1 = yk + 1
and we check if xk+1 = xk or xk+1 = xk + 1
pk
= fhyperbola (xk + 21 , yk + 1)
= b 2 (xk + 12 )2 a2 (yk + 1)2 a2 b 2
pk+1
= fhyperbola (xk+1 + 21 , yk+1 + 1)
= b 2 [(xk+1 ) + 21 ]2 a2 ((yk + 1) + 1)2 a2 b 2
pk+1 = pk + b 2 [(xk+1 + 12 )2 (xk + 12 )2 ] a2 2a2 (yk + 1)

Dr. Sambit Bakshi CS335 Computer Graphics


Hyperbola Drawing
Hyperbola Drawing Midpoint Hyperbola Drawing
Midpoint Hyperbola Drawing Algorithm

Finding Decision Parameter

When pk was negative, i.e. xk+1 = xk ,


pk+1 = pk a2 2a2 (yk + 1)
When pk was positive, i.e. xk+1 = xk + 1,
pk+1 = pk + b 2 a2 + 2b 2 (xk + 12 ) 2a2 (yk + 1)

Dr. Sambit Bakshi CS335 Computer Graphics


Hyperbola Drawing
Hyperbola Drawing Midpoint Hyperbola Drawing
Midpoint Hyperbola Drawing Algorithm

Finding p20

p2 0
= fhyperbola ( 12 , 1)
= b 2 ( 21 )2 a2 (1)2 a2 b 2
2
= b4 a2 a2 b 2

Dr. Sambit Bakshi CS335 Computer Graphics


Hyperbola Drawing
Hyperbola Drawing Midpoint Hyperbola Drawing
Midpoint Hyperbola Drawing Algorithm

Midpoint Hyperbola Drawing


1 // Region 1 algorithm
2 Input: a, b
3 Input: xlimit, ylimit
4 (x0 , y0 ) (a, 0)
5 Load (x0, y 0)
6 k0
7 p1 k = b 2 (xk + 1)2 a2 (yk + 12 )2 a2 b 2
8 m0
9 while (m <= 1 and xk < xlimit||yk < ylimit)
10 if (p1 k < 0)
xk+1 xk + 1, yk+1 yk + 1, Load (xk + 1, yk + 1)
p1 k + 1 = p1 k + 2b 2 (xk + 1) + a2 [(yk + 12 )2 (yk+1 + 12 )]2 + b 2
11 Otherwise
xk+1 xk + 1, yk+1 yk 1, Load (xk + 1, yk 1)
p1 k + 1 p1 k + 2xk+1 + 1 2yk+1 OR p1 k + 1 pk + 2xk + 5 2yk
12 m (yk+1 yk )/(xk+1 xk )
13 k (k + 1)

Dr. Sambit Bakshi CS335 Computer Graphics


Hyperbola Drawing
Hyperbola Drawing Midpoint Hyperbola Drawing
Midpoint Hyperbola Drawing Algorithm

Midpoint Hyperbola Drawing

1 // Region 2 algorithm
2 while (xk < xlimit||yk < ylimit)
3 if (p1 k < 0)
xk+1 xk , yk+1 yk + 1, Load (xk , yk + 1)
pk+1 = pk a2 2a2 (yk + 1)
4 Otherwise
xk+1 xk + 1, yk+1 yk 1, Load (xk + 1, yk 1)
pk+1 = pk + b 2 a2 + 2b 2 (xk + 12 ) 2a2 (yk + 1)
5 k (k + 1)

Dr. Sambit Bakshi CS335 Computer Graphics

You might also like