You are on page 1of 19

Computer Graphics 2k17BSCS CE-311

Lecture 4
(0,ry)
 Ellipse =1 O8 O1

• Major Axis (2ry)


• Minor Axis (2rx) O7 O2

(-rx,0) (rx,0)

O6 O3

O5 O4

(0,-ry)
(0,ry)

Ellipse drawing algorithm O8 O1

• Octet 1 O7 O2
• m<1
• x moves in unit intervals (-rx,0) (rx,0)
• yk+1 = yk-1 OR yk
• Next point is (xk+1,yk-1) OR (xk+1,yk) O3
O6
• Octet 2
• m>1
• y moves in unit intervals O5 O4
• xk+1 = xk+1 OR xk
• Next point is (xk+1,yk-1) OR (xk,yk-1) (0,-ry)
(0,ry)
?
Differentiating Octet-1 and Octet 2 O8 O1

•  - = f(x,y)
O7 O2
• Differentiation gives slope
f’(x,y) = - 2ry2 x / 2rx2 y
(-rx,0) (rx,0)

-1 = - 2ry2 x / 2rx2 y O3
O6

2rx2 y ≥ 2ry2 x
O5 O4
• is the condition where first octet ends

(0,-ry)
(0,ry)
Finding Decision Parameter 2xry2 ≥ 2yrx2

to select yk or yk-1 – Octet-1 O8 O1

• If the starting point is (xk,yk)


O7 O2
then next point on ellipse
(moving downward in the first
octet) will be either of the two (-rx,0) (rx,0)
• (xk+1 , yk) OR (xk+1 , yk-1)
O3
• Mid point : (xk+1 , yk – ½) O6

• Decision Parameter (pk) to


select either (xk+1 , yk) OR O5 O4
(xk+1,yk-1) ?
(0,-ry)
(0,ry)
Finding Decision Parameter 2xry2 ≥ 2yrx2

to select yk or yk-1 – Octet-1 O8 O1

• Substituting mid-point in ellipse function to


get the decision parameter O7 O2

p1k= (xk+1)2ry2 + (yk- ½ )2rx2 – rx2ry2


(-rx,0) (rx,0)
p1k+1= (xk+1+1)2ry2 + (yk+1- ½ )2rx2 – rx2ry2
p1k+1= ((xk+1)+1)2ry2 + (yk+1- ½ )2rx2 – rx2ry2 O6 O3

p1k+1= (xk+1)2 ry2 + ry2 + 2(xk+1) ry2


+ yk+12 rx2 + ¼ rx2 - yk+1 rx2 – rx2ry2 O5 O4

(0,-ry)
Finding Decision Parameter
to select yk or yk-1 – Octet-1
p1k+1 – p1k = (xk+1)2 ry2 + ry2 + 2(xk+1) ry2 + yk+12 rx2 + ¼ rx2 - yk+1 rx2 – rx2ry2
– ((xk+1)2ry2 + yk2rx2+ ¼rx2 - ykrx2 – rx2ry2)

p1k+1 – p1k = (xk+1)2 ry2 + ry2 + 2(xk+1) ry2 + yk+12 rx2 + ¼ rx2 - yk+1 rx2 – rx2ry2
– (xk+1)2ry2 - yk2rx2- ¼rx2 + ykrx2 + rx2ry2

p1k+1 – p1k = (xk+1)2 ry2 + ry2 + 2(xk+1) ry2 + yk+12 rx2 + ¼ rx2 - yk+1 rx2 – rx2ry2
– (xk+1)2ry2 - yk2rx2 -¼rx2 + ykrx2 + rx2ry2
Finding Decision Parameter
to select yk or yk-1 – Octet-1
p1k+1 – p1k = ry2 + 2(xk+1) ry2 + yk+12 rx2 - yk+1 rx2 - yk2rx2 + ykrx2
p1k+1 – p1k = ry2 + 2(xk+1) ry2 + yk+12 rx2 - yk2rx2 - yk+1 rx2 + ykrx2
p1k+1 – p1k = ry2 + 2(xk+1) ry2 + rx2 (yk+12 – yk2) – rx2(yk+1 – yk)

p1k+1 = p1k + ry2 + 2(xk+1) ry2 + rx2 (yk+12 – yk2) – rx2(yk+1 – yk)
(0,ry) 2xry2 ≥ 2yrx2
Finding Decision Parameter O8 O1
to select yk or yk-1 – Octet-1
• Initial Decision Parameter ? O7 O2
• p1k= (xk+1)2ry2 + (yk- ½ )2rx2 – rx2ry2
• p1k= (0+1)2ry2 + (ry- ½ )2rx2 – rx2ry2 (-rx,0) (rx,0)
• p1k= ry2 + (ry- ½ )2rx2 – rx2ry2
O6 O3
• p1k= ry2 + (ry2 + ¼ - ry )rx2 – rx2ry2
• p1k= ry2 + rx2ry2 + ¼rx2 - ryrx2 – rx2ry2
O5 O4
• p1k= ry2 + ¼rx2 - ryrx2
(0,-ry)
(0,ry) 2xry2 ≥ 2yrx2
Finding Decision Parameter O8 O1
to select yk or yk-1 – Octet-1
• p1k+1 = p1k + ry2 + 2(xk+1) ry2 + rx2 (yk+12 – yk2) – rx2(yk+1 – yk)
• p1k= ry2 + ¼rx2 - ryrx2 O7 O2
• First octet points must be within the limit
• before the condition 2xry2 ≥ 2yrx2 occures, starting from (0,r) (-rx,0) (rx,0)
if p1k≥0 then if p1k<0 then
O6 O3
yk+1 = yk–1 yk+1 = yk
so next point so next point
will be will be O4
O5
(xk+1, yk–1) (xk+1, yk)
(0,-ry)
Finding Decision Parameter (0,ry) 2xry2 ≥ 2yrx2

to select xk or xk+1 Octet-2 O8 O1

• If the starting point is (xk,yk) then next


point on ellipse (moving downward in O7 O2
the second octet) will be either of the
two (-rx,0) (rx,0)
• (xk+1 , yk-1) OR (xk , yk-1)
• Mid point : (xk+ ½ , yk – 1) O6 O3

• Decision Parameter (p2k) to select either


(xk+1 , yk) OR (xk+1,yk-1) ? O5 O4

(0,-ry)
2xry2 ≥ 2yrx2
Finding Decision Parameter (0,ry)
O8 O1
to select xk or xk+1 Octet-2
O7 O2
• Mid point : (xk+ ½ , yk – 1)
• Decision Parameter (p2k) to select either (xk+1 , yk -1) OR (xk,yk-1) ? (-rx,0) (rx,0)

• p2k= (xk+ ½ )2ry2 + (yk- 1)2rx2 – rx2ry2 O6 O3


• p2k+1= (xk+1+ ½ )2ry2 + (yk+1- 1)2rx2 – rx2ry2
O4
• p2k+1= (xk+1+ ½ ) ry + ((yk-1)- 1) rx – rx ry
2 2 2 2 2 2 O 5

• p2k+1= (xk+12+ ¼ + xk+1)ry2 + ((yk-1)2- 2(yk-1)+1)rx2 – rx2ry2 (0,-ry)

• p2k+1= xk+12ry2+ ¼ry2 + xk+1ry2 + (yk-1)2rx2- 2(yk-1) rx2+rx2 – rx2ry2


Finding Decision Parameter
to select xk or xk+1 Octet-2
• p2k+1 – p2k= xk+12ry2+ ¼ry2 + xk+1ry2 + (yk-1)2rx2- 2(yk-1) rx2+rx2 – rx2ry2
- [(xk+ ½ )2ry2 + (yk- 1)2rx2 – rx2ry2]
• p2k+1 – p2k= xk+12ry2+ ¼ry2 + xk+1ry2 + (yk-1)2rx2- 2(yk-1) rx2+rx2 – rx2ry2
- [xk2ry2+ ¼ry2 + xkry2 + (yk- 1)2rx2 – rx2ry2]
• p2k+1 – p2k= xk+12ry2+ ¼ry2 + xk+1ry2 + (yk-1)2rx2 - 2(yk-1) rx2+rx2 – rx2ry2
- xk2ry2 - ¼ry2 - xkry2 - (yk- 1)2rx2 + rx2ry2
• p2k+1 – p2k= rx2 - 2rx2(yk-1) + xk+12ry2 – xk2ry2 + xk+1ry2 - xkry2
• p2k+1 = p2k+ rx2 - 2rx2(yk-1) + ry2(xk+12 – xk2) + ry2(xk+1 - xk)
(0,ry) 2xry2 ≥ 2yrx2
Finding Decision Parameter O8 O1
to select xk or xk+1 Octet-2
• p2k= (xk+ ½ )2ry2 + (yk- 1)2rx2 – rx2ry2
O7 O2
• p2k+1 = p2k+ rx2 - 2rx2(yk-1) + ry2(xk+12 – xk2) + ry2(xk+1 - xk)

(-rx,0) (rx,0)
if p2k≥0 then if p2k<0 then
O6 O3
xk+1 = xk xk+1 = xk+1
so next point so next point
will be will be O4
O5
(xk, yk–1) (xk+1, yk – 1 )
(0,-ry)
(0,6) 2xry2 ≥ 2yrx2
O8 O1

O7 O2

(-8,0) (8,0)

O6 O3

O5 O4

(0,-6)
Drawing Ellipse (rx = 8 , ry=6 ) – Octet-1
p1k= ry2 + ¼rx2 - ryrx2
k xk yk p1k xk+1 yk+1 2xk+1ry2 2yk+1rx2 p1k+1
p1k+1 = p1k + ry2
0 0 6 -332 1 6 72 768 -224 + 2(xk+1) ry2
+ rx2 (yk+12 – yk2)
– rx2(yk+1 – yk)
if p1k≥0 then if p1k<0 then
yk+1 = yk–1 yk+1 = yk
so next so next
point will be point will be
(xk+1, yk–1) (xk+1, yk)
Drawing Ellipse (rx = 8 , ry=6 ) – Octet-1
p1k= ry2 + ¼rx2 - ryrx2
k xk yk p1k xk+1 yk+1 2xk+1ry2 2yk+1rx2 p1k+1
p1k+1 = p1k + ry2
0 0 6 -332 1 6 72 768 -224 + 2(xk+1) ry2
1 1 6 -224 2 6 144 768 -44 + rx2 (yk+12 – yk2)
2 2 6 -44 3 6 216 768 208
– rx2(yk+1 – yk)
if p1k≥0 then if p1k<0 then
3 3 6 208 4 5 288 640 -108 yk+1 = yk–1 yk+1 = yk

4 4 5 -108 5 5 360 640 288 so next so next


point will be point will be
5 5 5 288 6 4 432 512 244 (xk+1, yk–1) (xk+1, yk)
6 6 4 244 7 3 504 384
Drawing Ellipse (rx = 8 , ry=6 ) – Octet-2
k xk yk p2k xk+1 yk+1 p2k+1 p2k= (xk+ ½ )2ry2 + (yk- 1)2rx2 – rx2ry2

7 7 3 -23 8 2 361
p2k+1 = p2k+ rx2 - 2rx2(yk-1)
+ ry2(xk+12 – xk2)
+ ry2(xk+1 - xk)
if p2k≥0 then if p2k<0 then
xk+1 = xk xk+1 = xk+1
so next point so next point
will be will be
(xk, yk–1) (xk+1, yk – 1 )
Drawing Ellipse (rx = 8 , ry=6 ) – Octet-2
k xk yk p2k xk+1 yk+1 p2k+1 p2k= (xk+ ½ )2ry2 + (yk- 1)2rx2 – rx2ry2

7 7 3 -23 8 2 361
p2k+1 = p2k+ rx2 - 2rx2(yk-1)
8 8 2 361 8 1 297 + ry2(xk+12 – xk2)
9 8 1 297 8 0 + ry2(xk+1 - xk)
if p2k≥0 then if p2k<0 then
xk+1 = xk xk+1 = xk+1
so next point so next point
will be will be
(xk, yk–1) (xk+1, yk – 1 )

You might also like