 Open Access
 Authors : Dr. M. Javed Idrisi , Aayesha Ashraf
 Paper ID : IJERTV10IS020274
 Volume & Issue : Volume 10, Issue 02 (February 2021)
 Published (First Online): 08032021
 ISSN (Online) : 22780181
 Publisher Name : IJERT
 License: This work is licensed under a Creative Commons Attribution 4.0 International License
An Effective Approach to Minimize Error in Midpoint Ellipse Drawing Algorithm
(Minimize Error in Midpoint Ellipse Drawing Algorithm)
Dr. M. Javed Idrisi Department of Mathematics MizanTepi University Tepi Campus, Ethiopia
Aayesha Ashraf
Department of Computer Science and Engineering Jamia Hamdard (Deemed to be University)
New Delhi, India
Abstract The present paper deals with the generalization of Midpoint Ellipse Drawing Algorithm (MPEDA) to minimize the error in the existing MPEDA in Cartesian form. In this method, we consider three different values of h, i.e., 1, 0.5 and 0.1. For h = 1, all the results of MPEDA have been verified. For other values of h it is observed that as the value of h decreases, the number of iteration increases but the error between the points generated and the original ellipse points decreases and viceversa.
the points will lie outside the ellipse, where x and y are real numbers.
Initial Decision Parameter (Pk) for the region R1
Let the initial point be (0, b), i.e., xk = 0 and yk = b, therefore the initial decision parameter Pk is given by
k
k
P'
(4b2 a2 )
4

a2b.
Keywords Ellipse; Cartesian form of an Ellipse; MPEDA; Minimizing Error.
If Pk 0, then yk+1 = yk 1 and the next point will be (xk+1, yk

1), which gives
P' P' b2 2b2 (x
1) 2a2 ( y
1)

Introduction
k 1
k k k
k k
k k
A Midpoint Ellipse Drawing Algorithm (MPEDA) is used to
If Pk < 0, then yk+1 = yk and the next point will be (xk+1, yk), which gives
determine the points needed for rasterizing an ellipse. In this
algorithm, we divide the ellipse into 4 different quadrants and each quadrant will be divided into two regions R1 and R2,
'
P
P
k 1
P' b2 2b2 (x
1)
respectively. If we are able to plot the points in first quadrant, then by symmetry we can plot the points in the other three quadrants. Let (x, y) be the point in first quadrant, then the points in other quadrants can be determined as shown in the given Table 1.
Table 1: Coordinates in the quadrants of an Ellipse
Initial Decision Parameter (Pk) for the region R2
Let (xk, yk) be any point in the first region R2, then the initial decision parameter Pk for the region R2 is given by
k m m k k
k m m k k
P'' f (x , y ) b2 (x 1/ 2)2 a2 ( y 1)2 a2b2.
k k
k k
If Pk 0, then xk+1 = xk and the next point will be (xk, yk 1), which gives
P
P
Quadrant
I
II
III
IV
Point
(x, y)
(x, – y)
( x, – y)
( x, y)
Quadrant
I
II
III
IV
Point
(x, y)
(x, – y)
( x, – y)
( x, y)
''
k 1
P'' a2 2a2 ( y
1)
If Pk < 0, then xk+1 = xk + 1 and the next point will be (xk+1, yk
1), which gives
P''
P'' b2 2b2 (x 1/ 2) a2 2a2 ( y 1)
As we know that, every quadrant is again divided into two regions R1 and R2 (say). In order to complete a whole quadrant, we have to find out the points in the regions R1 and R2.
The equation of ellipse having center at origin is given by,
x2 y2
a2 b2 1
where a and b are the semi major and minor axes respectively and a > b.
The above equation can be written as, f(x,y) = 0, where f(x, y)
= b2x2 + a2y2 a2b2. All points (x, y) which satisfy the equation f(x, y) = 0 lies on the boundary of given ellipse. If f(x,
y) < 0, the points will lie inside the ellipse and for f(x, y) > 0,
k 1 k k k
The Ellipse drawing algorithm is studied by many researchers in past few decades. Some of the noteworthy work is as follows: Aken [1] has presented a midpoint algorithm for drawing ellipses on a raster graphics display which was highly accurate and only requires a few integer additions per pixel. They have also proved and demonstrated that a simple extension of J. E Bresenhams circle drawing algorithm doesnt guarantee accuracy in most general cases of ellipse. Hence the accuracy of the midpoint algorithm is limited only by the resolution of the display device itself, yet it requires no more execution time than the extended Bresenham algorithm. Kappel [2] has introduced an original algorithm for generating discrete approximations to ellipses for display on raster
devices. This approach was not new, they have combined the existing ideas to render a better algorithm for evaluating from the benchmarks of efficiency, accuracy and elegance. Fellner et.al. [3] have studied an incremental and robust algorithm that efficiently computes the best approximation of general
(xm , ym ) (xk h, yk h / 2).
Let Pk be the value of the function f(x, y) at the midpoint (xm,
ym), therefore,
P' f (x , y ) b2 (x h)2 a2 ( y h / 2)2 a2b2.
ellipses. Agathos et.al. [4] have described an algorithm
similarly based on Bresenham methodology known as Efficient integer 8connected algorithms for the fast
k m m k k
k 1
k 1
k 1
k 1
Thus, Pk+1 will be given by,
(1.2)
generation of Conic Sections whose axes are aligned to the
'
P
P
k 1
b2 (x
h)2 a2 ( y
h / 2)2 a2b2 .
(1.3)
coordinate axes. Their performance results show that in the case of the ellipse, the algorithm is at least as fast as other known integer algorithms but requires lower integer range and
where, xk+1 = xk + h and yk+1 = yk or yk h.
Thus, form Eqn. (1.3), we have,
always performs correct region transitions. In this algorithm
P' b2 (x 2h)2 a2 ( y h / 2)2 a2b2 .
(1.4)
antialiasing is easily incorporated. Liu et.al. [5] have
k 1
k k 1
developed a doublestep circle drawing algorithm which gives
the best approximate pixels to drawing a circle with only
On subtracting Eqn. (1.2) from Eqn. (1.4), we get,
P' P' b2 (x 2h)2 a2 ( y h / 2)2 a2b2
integer arithmetic. They showed that the speed of the
k 1 k k k 1
algorithm introduced is higher than the existing circle drawing algorithms. Furthermore, their algorithm can be used to draw antialiased circles, e.g. to draw filled circle edges with different intensity, without increase in calculations. Haiwen et.al. [6] have proposed a hybrid algorithm for fast drawing ellipse. Dimri et.al. [7] have described midpoint ellipse algorithm as one of the popular algorithms for ellipse drawing.
b2 (x h)2 a2 ( y h / 2)2 a2b2 .
k k
k k
On simplifying, we have,
k 1 k k k
k 1 k k k
P' P' b2 (x 2h)2 (x h)2
k 1 k
k 1 k
a2 ( y h / 2)2 ( y h / 2)2
which gives
They have proposed an algorithm in thatcomputes the pixels only in one octant and remaining part of the auxiliary circle
P
P
'
k 1
P' b2p 2b2h(x h)
(1.5)
k k
k k
can be generated by reflection about line x = y, with the help of the parametric equation of the ellipse.
a2 ( y2 y2 ) a2h( y



yk )
k 1
k 1
k k 1
k k 1
The present work deals with the generalization of Midpoint Ellipse Drawing Algorithm (MPEDA) in Cartesian form. In this method, we consider three different values of h
Let the initial point be (0, b), i.e., xk = 0 and yk = b, therefore from Eqn. (1.2), we get,
(4b2 a2 )p
i.e., 1, 0.5 and 0.1. For h = 1, all the results of MPEDA have
P' a2bh.
(1.6)
k
k
been verified. For other values of h it is observed that as the 4
value of h decreases, the number of iteration increases but the
error between the points generated and the original ellipse points decreases and viceversa.
If Pk 0, then yk+1 = yk h and the next point will be (xk+h, yk
h), which gives
P' P' b2p 2b2h(x h) 2a2h( y h) (1.7)

Generalization of Midpoint Ellipse Drawing Algorithm
k 1
k k k
k k
k k
The equation of ellipse having center at origin is given by,
If Pk < 0, then yk+1 = yk and the next point will be (xk+h, yk), which gives
1
1
x2 y2
a2 b2
(1.1)
'
P
P
k 1
P' b2p 2b2h(x

h)
(1.8)
where a and b are the semi major and minor axes respectively and a > b.
The Eqn. (1.1) can be written as, f(x,y) = 0, where f(x, y) = b2x2
+ a2y2 a2b2. All points (x, y) which satisfy the equation f(x, y)
= 0 lies on the boundary of given ellipse. If f(x, y) < 0, the points will lie inside the ellipse and for f(x, y) > 0, the points will lie outside the ellipse, where x and y are real numbers.
Initial Decision Parameter (Pk) for the region R1
Initial Decision Parameter (Pk) for the region R2
Let (xk, yk) be any point in the first region R2 then the next point to (xk, yk) in the region R2 is given by (xk, yk h) or (xk + h, yk h), where h is the width of the grid. Let (xm, ym) be the midpoint of (xk, yk h) or (xk + h, yk h), therefore,
(xm , ym ) (xk h / 2, yk h).
Let Pk be the value of the function f(x, y) at the midpoint (xm,
ym), therefore,
P'' f (x , y ) b2 (x
h / 2)2
Let (x , y ) be any point in the first region R
and it is assumed
k m m k
(1.9)
k k 1

a2 ( y
h)2 a2b2 .
that this point is moving in xyplane in clockwise direction. Thus, the next point to (xk, yk) in the region R1 is given by
k
k 1
k 1
k 1
k 1
Thus, Pk+1 will be given by,
(xk + h, yk) or (xk + h, yk h), where h is the width of the grid.
''
P
P
k 1
b2 (x
h / 2)2 a2 ( y
h)2 a2b2 .
(1.10)
Let (xm, ym) be the midpoint of (xk + h, yk) and (xk + h, yk
h), therefore,
where, xk+1 = xk or xk + h and yk+1 = yk h.
k 1
k 1
k
k
Thus, form Eqn. (1.10), we have,
P
P
''
k 1
b2 (x
h / 2)2 a2 ( y
2h)2 a2b2 .
(1.11)
k k 1
k k 1
k
k
On subtracting Eqn. (1.9) from Eqn. (1.11), we get,
P
P
''
k 1
P'' b2 (x
h / 2)2 (x
h / 2)2
Table 4: Points in the region R1 for h = 0.5
k k
k k
x
y
Pk
xk+1
yk+1
Pk+1
2b2xk+1
2a2yk+1
0
6
179
0.5
6
152
36
768
0.5
6
152
1
6
107
72
768
1
6
107
1.5
6
44
108
768
1.5
6
44
2
6
37
144
768
2
6
37
2.5
5.5
216
180
704
2.5
5.5
216
3
5.5
99
216
704
3
5.5
99
3.5
5.5
36
252
704
3.5
5.5
36
4
5
131
288
640
4
5
131
4.5
5
40
324
640
4.5
5
40
5
4.5
59
360
576
5
4.5
59
5.5
4.5
148
396
576
5.5
4.5
148
6
4
117
432
512
6
4
117
6.5
3.5
136
468
448
x
y
Pk
xk+1
yk+1
Pk+1
2b2xk+1
2a2yk+1
0
6
179
0.5
6
152
36
768
0.5
6
152
1
6
107
72
768
1
6
107
1.5
6
44
108
768
6
44
2
6
37
144
768
2
6
37
2.5
5.5
216
180
704
2.5
5.5
216
3
5.5
99
216
704
3
5.5
99
3.5
5.5
36
252
704
3.5
5.5
36
4
5
131
288
640
4
5
131
4.5
5
40
324
640
4.5
5
40
5
4.5
59
360
576
5
4.5
59
5.5
4.5
148
396
576
5.5
4.5
148
6
4
117
432
512
6
4
117
6.5
3.5
136
468
448
a2 ( y 2h)2 ( y h)2
On simplifying, we have,
P'' P'' b2 (x
h / 2)2 (x h / 2)2
k 1 k
k 1
k (1.12)
k
k
a2p 2a2h( y h)
k k
k k
If Pk 0, then xk+1 = xk and the next point will be (xk, yk h), which gives
P
P
''
k 1
P'' a2p 2a2h( y
h)
(1.13)
If Pk < 0, then xk+1 = xk + h and the next point will be (xk+h, yk
k k
k k
h), which gives
P
P
''
k 1
P'' b2p 2b2h(x
h / 2)
(1.14)
k
k
a2p 2a2h( y h)


Result
Let us draw an ellipse having centre at (0, 0) and semimajor and minor axes are 8 units and 6 units, respectively by the
Table 5: Points in the region R2 for h = 0.5
x
y
Pk
xk+1
yk+1
Pk+1
2b2xk+1
2a2yk+1
6.5
3
263.75
7
2.5
155.75
504
320
7
2.5
155.75
7.5
2
2.25
540
256
7.5
2
2.25
7.5
1.5
77.75
540
192
7.5
1.5
77.75
8
1
162.25
576
128
8
1
162.25
8
0.5
146.25
576
64
8
0.5
146.25
8
0
162.25
576
0
x
y
Pk
xk+1
yk+1
Pk+1
2b2xk+1
2a2yk+1
6.5
3
263.75
7
2.5
155.75
504
320
7
2.5
155.75
7.5
2
2.25
540
256
7.5
2
2.25
7.5
1.5
77.75
540
192
7.5
1.5
77.75
8
1
162.25
576
128
8
1
162.25
8
0.5
146.25
576
64
8
0.5
146.25
8
0
162.25
576
0
general method of Midpoint ellipse drawing algorithm. We will plot the points only in the regions R1 and R2 of first
quadrant considering (0, 6) as an initial point for different values of h.
432
x
y
Pk
xk+1
yk+1
Pk+1
2b2xk+1
2a2yk+1
0
6
332
1
6
224
72
768
1
6
224
2
6
44
144
768
2
6
44
3
6
208
216
768
3
6
208
4
5
108
288
640
4
5
108
5
5
288
360
640
5
5
288
6
4
244
512
6
4
244
7
3
400
504
384
x
y
Pk
xk+1
yk+1
Pk+1
2b2xk+1
2a2yk+1
0
6
332
1
6
224
72
768
1
6
224
2
6
44
144
768
2
6
44
3
6
208
216
768
3
6
208
4
5
108
288
640
4
5
108
5
5
288
360
640
5
5
288
6
4
244
432
512
6
4
244
7
3
400
504
384
Table 2: Points in the region R1 for h = 1
Table 6: Points in the region R1 for h = 0.1
x
y
Pk
xk+1
yk+1
Pk+1
2b2xk+1
2a2yk+1
0
6
37.88
0.1
6
36.8
7.2
768
0.1
6
36.8
0.2
6
35
14.4
768
0.2
6
35
0.3
6
32.48
21.6
768
0.3
6
32.48
0.4
6
29.24
28.8
768
0.4
6
29.24
0.5
6
25.28
36
768
0.5
6
25.28
0.6
6
20.6
43.2
768
0.6
6
20.6
0.7
6
15.2
50.4
768
0.7
6
15.2
0.8
6
9.08
57.6
768
0.8
6
9.08
0.9
6
2.24
64.8
768
0.9
6
2.24
1
6
5.32
72
768
1
6
5.32
1.1
5.9
61.92
79.2
755.2
1.1
5.9
61.92
1.2
5.9
52.92
86.4
755.2
1.2
5.9
52.92
1.3
5.9
43.2
93.6
755.2
1
x
y
Pk
xk+1
yk+1
Pk+1
2b2xk+1
2a2yk+1
0
6
37.88
0.1
6
36.8
7.2
768
0.1
6
36.8
0.2
6
35
14.4
768
0.2
6
35
0.3
6
32.48
21.6
768
0.3
6
32.48
0.4
6
29.24
28.8
768
0.4
6
29.24
0.5
6
25.28
36
768
0.5
6
25.28
0.6
6
20.6
43.2
768
0.6
6
20.6
0.7
6
15.2
50.4
768
0.7
6
15.2
0.8
6
9.08
57.6
768
0.8
6
9.08
0.9
6
2.24
64.8
768
0.9
6
2.24
1
6
5.32
72
768
6
5.32
1.1
5.9
61.92
79.2
755.2
1.1
5.9
61.92
1.2
5.9
52.92
86.4
755.2
1.2
5.9
52.92
1.3
5.9
43.2
93.6
755.2
In the last entry of Table 2, 2b2xk+1 = 504 > 2a2yk+1 = 384. Thus, the region R2 begins from this point and we will consider the point (7, 3) as an initial point for the region R2 (Table 3). Similarly, for h = 0.5 the points are found in Table 45 and for h = 0.1 the points are given in Table 67.
Table 3: Points in the region R2 for h = 1
x
y
Pk
xk+1
yk+1
Pk+1
2b2xk+1
2a2yk+1
7
3
23
8
2
361
576
256
8
2
361
8
1
297
576
128
8
1
297
8
0
361
576
0
1.3
5.9
43.2
1.4
5.9
32.76
100.8
755.2 5.9 4.1 41.76 6 4 34.12 432 512
1.4
5.9
32.76
1.5
5.9
21.6
108
755.2 6 4 34.12 6.1 3.9 28.48 439.2 499.2
1.5
5.9
21.6
1.6
5.9
9.72
115.2
755.2 6.1 3.9 28.48 6.2 3.8 24.84 446.4 486.4
1.6
5.9
9.72
1.7
5.9
2.88
122.4
755.2 6.2 3.8 24.84 6.3 3.7 23.2 453.6 473.6
1.7
5.9
2.88
1.8
5.8
58.04
129.6
742.4 6.3 3.7 23.2 6.4 3.6 23.56 460.8 460.8
1.8
5.8
58.04
1.9
5.8
44
136.8
742.4 6.4 3.6 23.56 6.5 3.5 25.92 468 448
1.9
5.8
44
2
5.8
29.24
144
742.4
2
5.8
29.24
2.1
5.8
13.76
151.2
742.4 Table 7: Points in the region R2 for h = 0.1
2.1
5.8
13.76
2.2
5.8
2.44
158.4
742.4 x y Pk xk+1 yk+1 Pk+1 2b2xk+1 2a2yk+1
2.2
5.8
2.44
2.3
5.7
53.6
165.6
729.6
2.3
5.7
53.6
2.4
5.7
35.96
172.8
729.6 6.5 3.5 19.67 6.6 3.4 15.03 475.2 435.2
2.4
5.7
35.96
2.5
5.7
17.6
180
729.6 6.6 3.4 15.03 6.7 3.3 8.39 482.4 422.4
2.5
5.7
17.6
2.6
5.7
1.48
187.2
729.6 6.7 3.3 8.39 6.8 3.2 0.25 489.6 409.6
2.6
5.7
1.48
2.7
5.6
50.4
194.4
716.8 6.8 3.2 0.25 6.8 3.1 38.79 489.6 396.8
2.7
5.6
50.4
2.8
5.6
29.88
201.6
716.8 6.8 3.1 38.79 6.9 3 26.87 496.8 384
2.8
5.6
29.88
2.9
5.6
8.64
208.8
716.8 6.9 3 26.87 7 2.9 12.95 504 371.2
2.9
5.6
8.64
3
5.6
13.32
216
716.8 7 2.9 12.95 7.1 2.8 2.97 511.2 358.4
3
5.6
13.32
3.1
5.5
34.4
223.2
704 7.1 2.8 2.97 7.1 2.7 30.95 511.2 345.6
3.1
5.5
34.4
3.2
5.5
11
230.4
704 7.1 2.7 30.95 7.2 2.6 11.75 518.4 332.8
3.2
5.5
11
3.3
5.5
13.12
237.6
704 7.2 2.6 11.75 7.3 2.5 9.45 525.6 320
3.3
5.5
13.12
3.4
5.4
31.16
244.8
691.2 7.3 2.5 9.45 7.3 2.4 20.63 525.6 307.2
3.4
5.4
31.16
3.5
5.4
5.6
252
691.2 7.3 2.4 20.63 7.4 2.3 3.85 532.8 294.4
3.5
5.4
5.6
3.6
5.4
20.68
259.2
691.2 7.42.3 3.85 7.4 2.2 23.67 532.8 281.6
3.6
5.4
20.68
3.7
5.3
20.16
266.4
678.4 7.4 2.2 23.67 7.5 2.1 4.09 540 268.8
3.7
5.3
20.16
3.8
5.3
7.56
273.6
678.4 7.5 2.1 4.09 7.5 2 20.87 540 256
3.8
5.3
7.56
3.9
5.2
30.56
280.8
665.6 7.5 2 20.87 7.6 1.9 10.17 547.2 243.2
3.9
5.2
30.56
4
5.2
1.4
288
665.6 7.6 1.9 10.17 7.6 1.8 12.23 547.2 230.4
4
5.2
1.4
4.1
5.2
28.48
295.2
665.6 7.6 1.8 12.23 7.7 1.7 22.09 554.4 217.6
4.1
5.2
28.48
4.2
5.1
6.2
302.4
652.8 7.7 1.7 22.09 7.7 1.6 2.25 554.4 204.8
4.2
5.1
6.2
4.3
5.1
25.12
309.6
652.8 7.7 1.6 2.25 7.7 1.5 16.31 554.4 192
4.3
5.1
25.12
4.4
5
6.84
316.8
640 7.7 1.5 16.31 7.8 1.4 22.57 561.6 179.2
4.4
5
6.84
4.5
5
25.92
324
640 7.8 1.4 22.57 7.8 1.3 6.57 561.6 166.4
4.5
5
25.92
4.6
4.9
3.32
331.2
627.2 7.8 1.3 6.57 7.8 1.2 8.15 561.6 153.6
4.6
4.9
3.32
4.7
4.9
30.88
338.4
627.2 7.8 1.2 8.15 7.9 1.1 35.29 568.8 140.8
4.7
4.9
30.88
4.8
4.8
4.36
345.6
614.4 7.9 1.1 35.29 7.9 1 23.13 568.8 128
4.8
4.8
4.36
4.9
4.7
20.16
352.8
601.6 7.9 1 23.13 7.9 0.9 12.25 568.8 115.2
4.9
4.7
20.16
5
4.7
16.2
360
601.6 7.9 0.9 12.25 7.9 0.8 2.65 568.8 102.4
5
4.7
16.2
5.1
4.6
5.6
367.2
588.8 7.9 0.8 2.65 7.9 0.7 5.67 568.8 89.6
5.1
4.6
5.6
5.2
4.6
32.2
374.4
588.8 7.9 0.7 5.67 8 0.6 44.89 576 76.8
5.2
4.6
32.2
5.3
4.5
13.12
381.6
576 8 0.6 44.89 8 0.5 39.13 576 64
5.3
4.5
13.12
5.4
4.4
3.96
388.8
563.2 8 0.5 39.13 8 0.4 34.65 576 51.2
5.4
4.4
3.96
5.5
4.4
36
396
563.2 8 0.4 34.65 8 0.3 31.45 576 38.4
5.5
4.4
36
5.6
4.3
21.64
403.2
550.4 8 0.3 31.45 8 0.2 29.53 576 25.6
5.6
4.3
21.64
5.7
4.2
9.28
410.4
537.6 8 0.2 29.53 8 0.1 28.89 576 12.8
5.7
4.2
9.28
5.8
4.1
1.08
417.6
524.8
5.8
4.1
1.08
5.9
4.1
41.76
424.8
524.8
Fig. 1: Original curve versus curve for h = 1 in the first quadrant
Fig. 2: Original curve versus curve for h = 0.5 in the first quadrant
Fig. 3: Original curve versus curve for h = 0.1 in the first quadrant

Discussion

The number of iterations depends upon the value of h. As h decreases, the number of iteration increases showed in Table 2, 3, 4, 5, 6 and 7. We have solved the same problem considering three different values of h. For h = 1, the classical case of MPEDA has been verified and it is clearly shown in Fig. 1 that there is a wide difference between the original curve and the curve generated by MPEDA. In the next Table, i.e., Table 4, we considered the value of h as 0.5 though the number of iterations increased but the results are much closer to original one (Fig. 2). Now, we considered h as 0.1, we observed that the points are almost similar to the original curve (Fig. 3).
DECLARATION OF COMPETING INTEREST
The authors declare that there is no conflict of interests regarding the publication of this manuscript.
REFERENCES

J.V. Aken, An efficient ellipsedrawing algorithm, IEEE Comp. Graph. And App., vol. 4, pp. 2435, 1984.

M.R. Kappel, An ellipsedrawing algorithm for raster displays, Fund. Algo. for Comp. Graph., vol. 17, pp. 257280, 1985.

D.W. Fellner and C. Helmberg, Best approximate general ellipses on integer grids, Comp. and Graph., vol. 18, pp. 143151, 1994.

A. Agathos, T. Theoharis, and A. Boehm, Efficient integer algorithms for the generation of conic sections Comp. and Graph., vol. 22, pp. 621628, 1998.

Y.K. Liu and X.N. Li, Doublestep circle drawing algorithm with and without grey scale. ICIG, Sichuan, pp. 886891, 2007.

F. Haiwen and N. Lianqiang, A hybrid generating algorithm for fast ellipses drawing, CSIP, Xian, Shaanxi, pp. 10221025,2012.

S.C. Dimri and M. Ram, An efficient algorithm to scan conversion of ellipse under auxiliary circle, Nonlin. Stud., vol. 24, pp. 181 191, 2017.