SlideShare a Scribd company logo
Computer Graphics
Lecture 06
Circle Drawing Techniques
Taqdees A. Siddiqi
cs602@vu.edu.pk
What is Circle
A circle is the set of points in a plane that are equidistant from
a given point O. The distance r from the center is called the
radius, and the point O is called the center. Twice the radius
is known as the diameter. The angle a circle subtends from
its center is a full angle, equal to 360° or 2 radians.
Circle Cont..
Circle Cont..
A circle has the maximum possible area for a given
perimeter, and the minimum possible perimeter for a given
area.
The perimeter C of a circle is called the circumference, and is
given by
C = 2  r
Circle Drawing Techniques
- Input for circle drawing
. one center point (xc, yc) and
. radius r
Now, using these two inputs there are a number of ways
to draw a circle.
Circle Drawing Techniques
These techniques have:
- Understanding curve
. very simple to
. complex
- Time complexity
. inefficient to
. efficient
Circle Drawing Using Cartesian
Coordinates
This technique uses the equation for a circle with radius r
centered at (0,0):
x2 + y2 = r2,
an obvious choice is to plot
y = ± r2 - x2
against different values of x.
Circle Drawing Using Cartesian
Coordinates
Using above equation a circle can be easily drawn. The value
of x varies from r-xc to r+xc, and y is calculated using above
formula. Using this technique a simple algorithm will be:
Circle Drawing Using Cartesian
Coordinates
for x= radius-xcenter to radius+xcenter
y = yc + r2 – ( x - xc )2
drawPixel (x, y)
y = yc - r2 – ( x - xc )2
drawPixel (x, y)
Drawbacks/ Shortcomings
This works, but …
. is inefficient
. multiplications & square root
. large gaps in the circle for values of x close to
r
(as shown in the next figure)
Drawbacks/ Shortcomings
Circle Drawing Using Polar Coordinates
Polar Coordinates:
Radius r
Angle 
calculate points along the circular boundary
using polar coordinates r and 
Expressing the circle equation in parametric polar form yields
the pair of equations:
Circle Drawing Using Polar Coordinates
Cont…
x = xc + r cos 
y = yc + r sin 
Using above equation circle can be plotted by calculating x
and y coordinates as  takes values from 0 to 360 degrees or
0 to 2 radians.
Circle Drawing Using Polar Coordinates
Cont…
The step size for  depends on:
. application and
. display device
Larger angular separations along the circumference can be
connected with straight-line segments to approximate the
circular path.
Step size at 1/r gives continuous boundary
This plots pixel positions that are approximately one unit apart.
Polar Coordinates Algorithm
Circle2 (xcenter, ycenter, radius)
for  = 0 to 2 step 1/r
x = xc + r * cos 
y = yc + r * sin 
drawPixel (x, y)
Discussion
- very simple technique
- solves problem of unequal space
- is inefficient in terms of calculations
- involves floating point calculations
Reduction in Calculations
 Symmetry in octants
 Upper half circle symmetric to lower half circle
 Left half circle symmetric to right half circle
 Finally two halves of the same quarters are symmetric to
each other
Eight Octants Symmetry
Optimizing the Algorithm
Now this algorithm can be optimized by using symmetric
octants as:
Circle2 (xcenter, ycenter, radius)
for  = 0 to /4 step 1/r
x = xc + r * cos 
y = yc + r * sin 
DrawSymmetricPoints(xcenter, ycenter, x,y)
Optimized Algorithm
DrawSymmeticPoints (xcenter, ycenter, x, y)
Plot (x + xcenter, y + ycenter)
Plot (y + xcenter, x + ycenter)
Plot (y + xcenter, -x + ycenter)
Plot (x + xcenter, -y + ycenter)
Plot (-x + xcenter, -y + ycenter)
Plot (-y + xcenter, -x + ycenter)
Plot (-y + xcenter, x + ycenter)
Plot (-x + xcenter, y + ycenter)
Inefficiency Still Prevails
 Reduction in calculations by exploiting symmetric octants
but…
 Floating point calculations still involved
Midpoint Circle Algorithm
 Derivation of decision parameter
 Decrement decision in the y coordinate against increment of
x coordinate
Midpoint Circle Algorithm
Consider only the first octant of a circle of radius r centered
on the origin.
We begin by plotting point (0, r) and end when x = y.
Midpoint Circle Algorithm
The decision at each step is whether to choose :
the pixel to the right of the current pixel
or
the pixel which is to the right and below the current pixel
(8-way stepping)
Midpoint Circle Algorithm
Assume:
P = (xk, yk) is the current
pixel.
Q = (xk+1, yk) is the pixel
to the right
R = (xk+1, yk -1) is the
pixel to the right and below.
X = Y
X2- Y2 - r2 =0
Midpoint Circle Algorithm
To apply the midpoint method, we define a circle function:
fcircle(x, y) = x2 + y2 – r2
The following relations can be observed:
f circle (x, y) < 0,if (x, y) is inside the circle boundary
f circle (x, y) = 0,if (x, y) is on the circle boundary
f circle (x, y) > 0,if (x, y) is outside the circle
boundary
Midpoint Circle Algorithm
Circle function tests are performed for the midpoints between
pixels near the circle path at each sampling step.
Midpoint Circle Algorithm
Xk+1
X2+Y2-R2=0
k
k
k
Midpoint Circle Algorithm
Figure given in previous slide shows the midpoint between
the two candidate pixels at sampling position xk+1.
Our decision parameter is the circle function evaluated at the
midpoint between these two pixels:
Decision Parameter
Pk = f circle ( xk + 1, yk - ½ )
Pk = ( xk + 1 ) 2 + ( yk - ½ ) 2 – r 2 ……...(1)
Decision Parameter
If pk < 0, this midpoint is inside the circle and the pixel on
scan line yk is closer to the circle boundary. Otherwise, the
mid position is outside or on the circle boundary, and we
select the pixel on scan-line yk-1.
Decision Parameter
Successive decision parameters are obtained using
incremental calculations. We obtain a recursive expression
for the next decision parameter by evaluating the circle
function at sampling position xk+1+1 = xk+2:
Decision Parameter
Pk+1 = f circle ( xk+1 + 1, yk+1 - ½ )
Pk+1 = [ ( xk + 1 ) + 1 ] 2 + ( yk+1 - ½ ) 2 – r 2
.………(2)
Decision Parameter
Subtracting (1) from (2), we get:
Pk+1 - Pk = [ ( xk + 1 ) + 1 ] 2 + ( yk+1 - ½ ) 2 – r 2 – ( xk + 1 ) 2 - ( yk -
½ ) 2 + r 2
or
Pk+1 = Pk + 2( xk + 1 ) + ( y2
k+1 - y2
k ) – ( yk+1 - yk ) + 1
Decision Parameter
Where yk+1 is either yk or yk-1, depending on the sign of Pk.
Therefore, if Pk < 0 or negative then yk+1 will be yk and the
formula to calculate Pk+1 will be:
Decision Parameter
Pk+1 = Pk + 2( xk + 1 ) + ( y2
k - y2
k )
– ( yk - yk ) + 1
Pk+1 = Pk + 2( xk + 1 ) + 1
Decision Parameter
Otherwise, if Pk > 0 or positive then yk+1 will be yk-1 and the
formula to calculate Pk+1 will be:
Decision Parameter
Pk+1 = Pk + 2( xk + 1 ) + [ (y k -1)2 - y2
k ]
– (yk -1- yk ) + 1
Pk+1 = Pk + 2(xk + 1) + (y2
k - 2 y k +1 - y2
k )
– ( yk -1- yk ) + 1
Pk+1 = Pk + 2( xk + 1 ) - 2 y k + 1 + 1 +1
Pk+1 = Pk + 2( xk + 1 ) - 2 y k + 2 +1
Pk+1 = Pk + 2( xk + 1 ) - 2 ( y k – 1 ) + 1
Decision Parameter
Now a similar case that we observed in line algorithm is that
how would starting Pk be calculated.
For this, the starting pixel position will be (0, r).
Therefore, putting this value in equation, we get
Decision Parameter
P0 = ( 0 + 1 ) 2 + ( r - ½ ) 2 – r 2
P0 = 1 + r2 - r + ¼ – r 2
P0 = 5/4 – r
If radius r is specified as an integer, we can simply round p0
to:
P0 = 1 – r
Since all increments are integer. Finally the algorithm can be
summed up as :
Algorithm
MidpointCircle (xcenter, ycenter, radius)
x = 0;
y = r;
p = 1 - r;
do
DrawSymmetricPoints (xcenter, ycenter, x, y)
x = x + 1
If p < 0 Then
p = p + 2 * ( y + 1 ) + 1
Algorithm Cont…
else
y = y - 1
p = p + 2 * ( y + 1) –2 ( x – 1 ) + 1
while ( x < y )
Example to calculate first octant of the circle using above
algorithm.
Example
center ( 0, 0 ) radius = 10
Example Cont…
Behaviour of
calculated points
around the circle is
observable
Computer Graphics
Lecture 06
Circle Drawing Techniques
Taqdees A. Siddiqi
cs602@vu.edu.pk

More Related Content

Similar to 10994479.ppt

Midpoint circle algo
Midpoint circle algoMidpoint circle algo
Midpoint circle algo
Mohd Arif
 
Bressenham’s Midpoint Circle Drawing Algorithm
Bressenham’s Midpoint Circle Drawing AlgorithmBressenham’s Midpoint Circle Drawing Algorithm
Bressenham’s Midpoint Circle Drawing Algorithm
Mrinmoy Dalal
 
Unit 3
Unit 3Unit 3
Output primitives in Computer Graphics
Output primitives in Computer GraphicsOutput primitives in Computer Graphics
Output primitives in Computer Graphics
Kamal Acharya
 
module 1.pdf
module 1.pdfmodule 1.pdf
module 1.pdf
KimTaehyung188352
 
Output Primitive and Brenshamas Line.pptx
Output Primitive and Brenshamas Line.pptxOutput Primitive and Brenshamas Line.pptx
Output Primitive and Brenshamas Line.pptx
NaveenaKarthik3
 
Unit 2
Unit 2Unit 2
Unit 2
ypnrao
 
Unit-2 raster scan graphics,line,circle and polygon algorithms
Unit-2 raster scan graphics,line,circle and polygon algorithmsUnit-2 raster scan graphics,line,circle and polygon algorithms
Unit-2 raster scan graphics,line,circle and polygon algorithms
Amol Gaikwad
 
Computer Graphic - Lines, Circles and Ellipse
Computer Graphic - Lines, Circles and EllipseComputer Graphic - Lines, Circles and Ellipse
Computer Graphic - Lines, Circles and Ellipse
2013901097
 
Computer Graphics - lines, Circles and ellipse
Computer Graphics - lines, Circles and ellipseComputer Graphics - lines, Circles and ellipse
Computer Graphics - lines, Circles and ellipse
Hisham Al Kurdi, EAVA, DMC-D-4K, HCCA-P, HCAA-D
 
Shape drawing algs
Shape drawing algsShape drawing algs
Shape drawing algs
MusawarNice
 
Circle drawing algo.
Circle drawing algo.Circle drawing algo.
Circle drawing algo.
Mohd Arif
 
Chapter 3 Output Primitives
Chapter 3 Output PrimitivesChapter 3 Output Primitives
Chapter 3 Output Primitives
PrathimaBaliga
 
Open GL T0074 56 sm4
Open GL T0074 56 sm4Open GL T0074 56 sm4
Open GL T0074 56 sm4
Roziq Bahtiar
 
Computer graphics 2
Computer graphics 2Computer graphics 2
Computer graphics 2
Prabin Gautam
 
Computer graphics
Computer graphicsComputer graphics
Computer graphics
Shweta Patil
 
Bresenhamcircle derivation
Bresenhamcircle derivationBresenhamcircle derivation
Bresenhamcircle derivation
Mazharul Islam
 
Computer Graphics Unit 2
Computer Graphics Unit 2Computer Graphics Unit 2
Computer Graphics Unit 2
SanthiNivas
 
Computer Graphics - Bresenham's line drawing algorithm & Mid Point Circle alg...
Computer Graphics - Bresenham's line drawing algorithm & Mid Point Circle alg...Computer Graphics - Bresenham's line drawing algorithm & Mid Point Circle alg...
Computer Graphics - Bresenham's line drawing algorithm & Mid Point Circle alg...
Saikrishna Tanguturu
 
Rasterisation of a circle by the bresenham algorithm
Rasterisation of a circle by the bresenham algorithmRasterisation of a circle by the bresenham algorithm
Rasterisation of a circle by the bresenham algorithm
KALAIRANJANI21
 

Similar to 10994479.ppt (20)

Midpoint circle algo
Midpoint circle algoMidpoint circle algo
Midpoint circle algo
 
Bressenham’s Midpoint Circle Drawing Algorithm
Bressenham’s Midpoint Circle Drawing AlgorithmBressenham’s Midpoint Circle Drawing Algorithm
Bressenham’s Midpoint Circle Drawing Algorithm
 
Unit 3
Unit 3Unit 3
Unit 3
 
Output primitives in Computer Graphics
Output primitives in Computer GraphicsOutput primitives in Computer Graphics
Output primitives in Computer Graphics
 
module 1.pdf
module 1.pdfmodule 1.pdf
module 1.pdf
 
Output Primitive and Brenshamas Line.pptx
Output Primitive and Brenshamas Line.pptxOutput Primitive and Brenshamas Line.pptx
Output Primitive and Brenshamas Line.pptx
 
Unit 2
Unit 2Unit 2
Unit 2
 
Unit-2 raster scan graphics,line,circle and polygon algorithms
Unit-2 raster scan graphics,line,circle and polygon algorithmsUnit-2 raster scan graphics,line,circle and polygon algorithms
Unit-2 raster scan graphics,line,circle and polygon algorithms
 
Computer Graphic - Lines, Circles and Ellipse
Computer Graphic - Lines, Circles and EllipseComputer Graphic - Lines, Circles and Ellipse
Computer Graphic - Lines, Circles and Ellipse
 
Computer Graphics - lines, Circles and ellipse
Computer Graphics - lines, Circles and ellipseComputer Graphics - lines, Circles and ellipse
Computer Graphics - lines, Circles and ellipse
 
Shape drawing algs
Shape drawing algsShape drawing algs
Shape drawing algs
 
Circle drawing algo.
Circle drawing algo.Circle drawing algo.
Circle drawing algo.
 
Chapter 3 Output Primitives
Chapter 3 Output PrimitivesChapter 3 Output Primitives
Chapter 3 Output Primitives
 
Open GL T0074 56 sm4
Open GL T0074 56 sm4Open GL T0074 56 sm4
Open GL T0074 56 sm4
 
Computer graphics 2
Computer graphics 2Computer graphics 2
Computer graphics 2
 
Computer graphics
Computer graphicsComputer graphics
Computer graphics
 
Bresenhamcircle derivation
Bresenhamcircle derivationBresenhamcircle derivation
Bresenhamcircle derivation
 
Computer Graphics Unit 2
Computer Graphics Unit 2Computer Graphics Unit 2
Computer Graphics Unit 2
 
Computer Graphics - Bresenham's line drawing algorithm & Mid Point Circle alg...
Computer Graphics - Bresenham's line drawing algorithm & Mid Point Circle alg...Computer Graphics - Bresenham's line drawing algorithm & Mid Point Circle alg...
Computer Graphics - Bresenham's line drawing algorithm & Mid Point Circle alg...
 
Rasterisation of a circle by the bresenham algorithm
Rasterisation of a circle by the bresenham algorithmRasterisation of a circle by the bresenham algorithm
Rasterisation of a circle by the bresenham algorithm
 

More from ALIZAIB KHAN

Ants coony optimiztion problem in Advance analysis of algorithms
Ants coony optimiztion problem in Advance analysis of algorithmsAnts coony optimiztion problem in Advance analysis of algorithms
Ants coony optimiztion problem in Advance analysis of algorithms
ALIZAIB KHAN
 
Ant Colony Optimization algorithms in ADSA
Ant Colony Optimization algorithms in ADSAAnt Colony Optimization algorithms in ADSA
Ant Colony Optimization algorithms in ADSA
ALIZAIB KHAN
 
decison tree and rules in data mining techniques
decison tree and rules in data mining techniquesdecison tree and rules in data mining techniques
decison tree and rules in data mining techniques
ALIZAIB KHAN
 
Artificial Neural Networks for data mining
Artificial Neural Networks for data miningArtificial Neural Networks for data mining
Artificial Neural Networks for data mining
ALIZAIB KHAN
 
Chapter01.ppt
Chapter01.pptChapter01.ppt
Chapter01.ppt
ALIZAIB KHAN
 
CS911-Lecture-19_40235.pptx
CS911-Lecture-19_40235.pptxCS911-Lecture-19_40235.pptx
CS911-Lecture-19_40235.pptx
ALIZAIB KHAN
 
CS911-Lecture-13_34826.pptx
CS911-Lecture-13_34826.pptxCS911-Lecture-13_34826.pptx
CS911-Lecture-13_34826.pptx
ALIZAIB KHAN
 
Lecture 1.pptx
Lecture 1.pptxLecture 1.pptx
Lecture 1.pptx
ALIZAIB KHAN
 
Types of Algorithms.ppt
Types of Algorithms.pptTypes of Algorithms.ppt
Types of Algorithms.ppt
ALIZAIB KHAN
 

More from ALIZAIB KHAN (9)

Ants coony optimiztion problem in Advance analysis of algorithms
Ants coony optimiztion problem in Advance analysis of algorithmsAnts coony optimiztion problem in Advance analysis of algorithms
Ants coony optimiztion problem in Advance analysis of algorithms
 
Ant Colony Optimization algorithms in ADSA
Ant Colony Optimization algorithms in ADSAAnt Colony Optimization algorithms in ADSA
Ant Colony Optimization algorithms in ADSA
 
decison tree and rules in data mining techniques
decison tree and rules in data mining techniquesdecison tree and rules in data mining techniques
decison tree and rules in data mining techniques
 
Artificial Neural Networks for data mining
Artificial Neural Networks for data miningArtificial Neural Networks for data mining
Artificial Neural Networks for data mining
 
Chapter01.ppt
Chapter01.pptChapter01.ppt
Chapter01.ppt
 
CS911-Lecture-19_40235.pptx
CS911-Lecture-19_40235.pptxCS911-Lecture-19_40235.pptx
CS911-Lecture-19_40235.pptx
 
CS911-Lecture-13_34826.pptx
CS911-Lecture-13_34826.pptxCS911-Lecture-13_34826.pptx
CS911-Lecture-13_34826.pptx
 
Lecture 1.pptx
Lecture 1.pptxLecture 1.pptx
Lecture 1.pptx
 
Types of Algorithms.ppt
Types of Algorithms.pptTypes of Algorithms.ppt
Types of Algorithms.ppt
 

Recently uploaded

Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
kalichargn70th171
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
Gerardo Pardo-Castellote
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Undress Baby
 

Recently uploaded (20)

Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
 

10994479.ppt

  • 1. Computer Graphics Lecture 06 Circle Drawing Techniques Taqdees A. Siddiqi cs602@vu.edu.pk
  • 2. What is Circle A circle is the set of points in a plane that are equidistant from a given point O. The distance r from the center is called the radius, and the point O is called the center. Twice the radius is known as the diameter. The angle a circle subtends from its center is a full angle, equal to 360° or 2 radians.
  • 4. Circle Cont.. A circle has the maximum possible area for a given perimeter, and the minimum possible perimeter for a given area. The perimeter C of a circle is called the circumference, and is given by C = 2  r
  • 5. Circle Drawing Techniques - Input for circle drawing . one center point (xc, yc) and . radius r Now, using these two inputs there are a number of ways to draw a circle.
  • 6. Circle Drawing Techniques These techniques have: - Understanding curve . very simple to . complex - Time complexity . inefficient to . efficient
  • 7. Circle Drawing Using Cartesian Coordinates This technique uses the equation for a circle with radius r centered at (0,0): x2 + y2 = r2, an obvious choice is to plot y = ± r2 - x2 against different values of x.
  • 8. Circle Drawing Using Cartesian Coordinates Using above equation a circle can be easily drawn. The value of x varies from r-xc to r+xc, and y is calculated using above formula. Using this technique a simple algorithm will be:
  • 9. Circle Drawing Using Cartesian Coordinates for x= radius-xcenter to radius+xcenter y = yc + r2 – ( x - xc )2 drawPixel (x, y) y = yc - r2 – ( x - xc )2 drawPixel (x, y)
  • 10. Drawbacks/ Shortcomings This works, but … . is inefficient . multiplications & square root . large gaps in the circle for values of x close to r (as shown in the next figure)
  • 12. Circle Drawing Using Polar Coordinates Polar Coordinates: Radius r Angle  calculate points along the circular boundary using polar coordinates r and  Expressing the circle equation in parametric polar form yields the pair of equations:
  • 13. Circle Drawing Using Polar Coordinates Cont… x = xc + r cos  y = yc + r sin  Using above equation circle can be plotted by calculating x and y coordinates as  takes values from 0 to 360 degrees or 0 to 2 radians.
  • 14. Circle Drawing Using Polar Coordinates Cont… The step size for  depends on: . application and . display device Larger angular separations along the circumference can be connected with straight-line segments to approximate the circular path. Step size at 1/r gives continuous boundary This plots pixel positions that are approximately one unit apart.
  • 15. Polar Coordinates Algorithm Circle2 (xcenter, ycenter, radius) for  = 0 to 2 step 1/r x = xc + r * cos  y = yc + r * sin  drawPixel (x, y)
  • 16. Discussion - very simple technique - solves problem of unequal space - is inefficient in terms of calculations - involves floating point calculations
  • 17. Reduction in Calculations  Symmetry in octants  Upper half circle symmetric to lower half circle  Left half circle symmetric to right half circle  Finally two halves of the same quarters are symmetric to each other
  • 19. Optimizing the Algorithm Now this algorithm can be optimized by using symmetric octants as: Circle2 (xcenter, ycenter, radius) for  = 0 to /4 step 1/r x = xc + r * cos  y = yc + r * sin  DrawSymmetricPoints(xcenter, ycenter, x,y)
  • 20. Optimized Algorithm DrawSymmeticPoints (xcenter, ycenter, x, y) Plot (x + xcenter, y + ycenter) Plot (y + xcenter, x + ycenter) Plot (y + xcenter, -x + ycenter) Plot (x + xcenter, -y + ycenter) Plot (-x + xcenter, -y + ycenter) Plot (-y + xcenter, -x + ycenter) Plot (-y + xcenter, x + ycenter) Plot (-x + xcenter, y + ycenter)
  • 21. Inefficiency Still Prevails  Reduction in calculations by exploiting symmetric octants but…  Floating point calculations still involved
  • 22. Midpoint Circle Algorithm  Derivation of decision parameter  Decrement decision in the y coordinate against increment of x coordinate
  • 23. Midpoint Circle Algorithm Consider only the first octant of a circle of radius r centered on the origin. We begin by plotting point (0, r) and end when x = y.
  • 24. Midpoint Circle Algorithm The decision at each step is whether to choose : the pixel to the right of the current pixel or the pixel which is to the right and below the current pixel (8-way stepping)
  • 25. Midpoint Circle Algorithm Assume: P = (xk, yk) is the current pixel. Q = (xk+1, yk) is the pixel to the right R = (xk+1, yk -1) is the pixel to the right and below. X = Y X2- Y2 - r2 =0
  • 26. Midpoint Circle Algorithm To apply the midpoint method, we define a circle function: fcircle(x, y) = x2 + y2 – r2 The following relations can be observed: f circle (x, y) < 0,if (x, y) is inside the circle boundary f circle (x, y) = 0,if (x, y) is on the circle boundary f circle (x, y) > 0,if (x, y) is outside the circle boundary
  • 27. Midpoint Circle Algorithm Circle function tests are performed for the midpoints between pixels near the circle path at each sampling step.
  • 29. Midpoint Circle Algorithm Figure given in previous slide shows the midpoint between the two candidate pixels at sampling position xk+1. Our decision parameter is the circle function evaluated at the midpoint between these two pixels:
  • 30. Decision Parameter Pk = f circle ( xk + 1, yk - ½ ) Pk = ( xk + 1 ) 2 + ( yk - ½ ) 2 – r 2 ……...(1)
  • 31. Decision Parameter If pk < 0, this midpoint is inside the circle and the pixel on scan line yk is closer to the circle boundary. Otherwise, the mid position is outside or on the circle boundary, and we select the pixel on scan-line yk-1.
  • 32. Decision Parameter Successive decision parameters are obtained using incremental calculations. We obtain a recursive expression for the next decision parameter by evaluating the circle function at sampling position xk+1+1 = xk+2:
  • 33. Decision Parameter Pk+1 = f circle ( xk+1 + 1, yk+1 - ½ ) Pk+1 = [ ( xk + 1 ) + 1 ] 2 + ( yk+1 - ½ ) 2 – r 2 .………(2)
  • 34. Decision Parameter Subtracting (1) from (2), we get: Pk+1 - Pk = [ ( xk + 1 ) + 1 ] 2 + ( yk+1 - ½ ) 2 – r 2 – ( xk + 1 ) 2 - ( yk - ½ ) 2 + r 2 or Pk+1 = Pk + 2( xk + 1 ) + ( y2 k+1 - y2 k ) – ( yk+1 - yk ) + 1
  • 35. Decision Parameter Where yk+1 is either yk or yk-1, depending on the sign of Pk. Therefore, if Pk < 0 or negative then yk+1 will be yk and the formula to calculate Pk+1 will be:
  • 36. Decision Parameter Pk+1 = Pk + 2( xk + 1 ) + ( y2 k - y2 k ) – ( yk - yk ) + 1 Pk+1 = Pk + 2( xk + 1 ) + 1
  • 37. Decision Parameter Otherwise, if Pk > 0 or positive then yk+1 will be yk-1 and the formula to calculate Pk+1 will be:
  • 38. Decision Parameter Pk+1 = Pk + 2( xk + 1 ) + [ (y k -1)2 - y2 k ] – (yk -1- yk ) + 1 Pk+1 = Pk + 2(xk + 1) + (y2 k - 2 y k +1 - y2 k ) – ( yk -1- yk ) + 1 Pk+1 = Pk + 2( xk + 1 ) - 2 y k + 1 + 1 +1 Pk+1 = Pk + 2( xk + 1 ) - 2 y k + 2 +1 Pk+1 = Pk + 2( xk + 1 ) - 2 ( y k – 1 ) + 1
  • 39. Decision Parameter Now a similar case that we observed in line algorithm is that how would starting Pk be calculated. For this, the starting pixel position will be (0, r). Therefore, putting this value in equation, we get
  • 40. Decision Parameter P0 = ( 0 + 1 ) 2 + ( r - ½ ) 2 – r 2 P0 = 1 + r2 - r + ¼ – r 2 P0 = 5/4 – r If radius r is specified as an integer, we can simply round p0 to: P0 = 1 – r Since all increments are integer. Finally the algorithm can be summed up as :
  • 41. Algorithm MidpointCircle (xcenter, ycenter, radius) x = 0; y = r; p = 1 - r; do DrawSymmetricPoints (xcenter, ycenter, x, y) x = x + 1 If p < 0 Then p = p + 2 * ( y + 1 ) + 1
  • 42. Algorithm Cont… else y = y - 1 p = p + 2 * ( y + 1) –2 ( x – 1 ) + 1 while ( x < y ) Example to calculate first octant of the circle using above algorithm.
  • 43. Example center ( 0, 0 ) radius = 10
  • 44. Example Cont… Behaviour of calculated points around the circle is observable
  • 45. Computer Graphics Lecture 06 Circle Drawing Techniques Taqdees A. Siddiqi cs602@vu.edu.pk