SlideShare a Scribd company logo
1 of 45
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 algoMohd Arif
 
Bressenham’s Midpoint Circle Drawing Algorithm
Bressenham’s Midpoint Circle Drawing AlgorithmBressenham’s Midpoint Circle Drawing Algorithm
Bressenham’s Midpoint Circle Drawing AlgorithmMrinmoy Dalal
 
Output primitives in Computer Graphics
Output primitives in Computer GraphicsOutput primitives in Computer Graphics
Output primitives in Computer GraphicsKamal Acharya
 
Output Primitive and Brenshamas Line.pptx
Output Primitive and Brenshamas Line.pptxOutput Primitive and Brenshamas Line.pptx
Output Primitive and Brenshamas Line.pptxNaveenaKarthik3
 
Unit 2
Unit 2Unit 2
Unit 2ypnrao
 
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 algorithmsAmol Gaikwad
 
Computer Graphic - Lines, Circles and Ellipse
Computer Graphic - Lines, Circles and EllipseComputer Graphic - Lines, Circles and Ellipse
Computer Graphic - Lines, Circles and Ellipse2013901097
 
Shape drawing algs
Shape drawing algsShape drawing algs
Shape drawing algsMusawarNice
 
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 PrimitivesPrathimaBaliga
 
Open GL T0074 56 sm4
Open GL T0074 56 sm4Open GL T0074 56 sm4
Open GL T0074 56 sm4Roziq Bahtiar
 
Bresenhamcircle derivation
Bresenhamcircle derivationBresenhamcircle derivation
Bresenhamcircle derivationMazharul Islam
 
Computer Graphics Unit 2
Computer Graphics Unit 2Computer Graphics Unit 2
Computer Graphics Unit 2SanthiNivas
 
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 algorithmKALAIRANJANI21
 

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 Graphics - lines, Circles and ellipse
Computer Graphics - lines, Circles and ellipseComputer Graphics - lines, Circles and ellipse
Computer Graphics - lines, Circles and ellipse
 
Computer Graphic - Lines, Circles and Ellipse
Computer Graphic - Lines, Circles and EllipseComputer Graphic - Lines, Circles and Ellipse
Computer Graphic - 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 algorithmsALIZAIB KHAN
 
Ant Colony Optimization algorithms in ADSA
Ant Colony Optimization algorithms in ADSAAnt Colony Optimization algorithms in ADSA
Ant Colony Optimization algorithms in ADSAALIZAIB 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 techniquesALIZAIB KHAN
 
Artificial Neural Networks for data mining
Artificial Neural Networks for data miningArtificial Neural Networks for data mining
Artificial Neural Networks for data miningALIZAIB KHAN
 
CS911-Lecture-19_40235.pptx
CS911-Lecture-19_40235.pptxCS911-Lecture-19_40235.pptx
CS911-Lecture-19_40235.pptxALIZAIB KHAN
 
CS911-Lecture-13_34826.pptx
CS911-Lecture-13_34826.pptxCS911-Lecture-13_34826.pptx
CS911-Lecture-13_34826.pptxALIZAIB KHAN
 
Types of Algorithms.ppt
Types of Algorithms.pptTypes of Algorithms.ppt
Types of Algorithms.pptALIZAIB 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

What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 

Recently uploaded (20)

What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 

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