Presentation is loading. Please wait.

Presentation is loading. Please wait.

Computer Graphics Lecture 06 Circle Drawing Techniques Taqdees A. Siddiqi

Similar presentations


Presentation on theme: "Computer Graphics Lecture 06 Circle Drawing Techniques Taqdees A. Siddiqi"— Presentation transcript:

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.

3 Circle Cont..

4 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 (x c, y c ) 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): x 2 + y 2 = r 2, an obvious choice is to plot y = ± r 2 - x 2 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-x c to r+x c, and y is calculated using above formula. Using this technique a simple algorithm will be:

9 Circle Drawing Using Cartesian Coordinates for x= radius-x center to radius+x center y = y c + r 2 – ( x - x c ) 2 drawPixel (x, y) y = y c - r 2 – ( x - x c ) 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)

11 Drawbacks/ Shortcomings

12 Circle Drawing Using Polar Coordinates Polar Coordinates: Radiusr 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 = x c + r cos  y = y c + 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 = x c + r * cos  y = y c + 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

18 Eight Octants Symmetry

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 = x c + r * cos  y = y c + 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 = (x k, y k ) is the current pixel. Q = (x k +1, y k ) is the pixel to the right R = (x k +1, y k -1) is the pixel to the right and below. X = Y X 2- Y 2 - r 2 =0

26 Midpoint Circle Algorithm To apply the midpoint method, we define a circle function: f circle (x, y) = x 2 + y 2 – r 2 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.

28 Midpoint Circle Algorithm X k +1 X 2+ Y 2 -R 2 =0 k k k

29 Midpoint Circle Algorithm Figure given in previous slide shows the midpoint between the two candidate pixels at sampling position x k +1. Our decision parameter is the circle function evaluated at the midpoint between these two pixels:

30 Decision Parameter P k = f circle ( x k + 1, y k - ½ ) P k = ( x k + 1 ) 2 + ( y k - ½ ) 2 – r 2 ……...(1)

31 Decision Parameter If p k < 0, this midpoint is inside the circle and the pixel on scan line y k 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 y k -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 x k+1 +1 = x k +2:

33 Decision Parameter P k+1 = f circle ( x k+1 + 1, y k+1 - ½ ) P k+1 = [ ( x k + 1 ) + 1 ] 2 + ( y k+1 - ½ ) 2 – r 2.……… (2)

34 Decision Parameter Subtracting (1) from (2), we get: P k+1 - P k = [ ( x k + 1 ) + 1 ] 2 + ( y k+1 - ½ ) 2 – r 2 – ( x k + 1 ) 2 - ( y k - ½ ) 2 + r 2 or P k+1 = P k + 2( x k + 1 ) + ( y 2 k+1 - y 2 k ) – ( y k+1 - y k ) + 1

35 Decision Parameter Where y k+1 is either y k or y k -1, depending on the sign of P k. Therefore, if P k < 0 or negative then y k+1 will be y k and the formula to calculate P k+1 will be:

36 Decision Parameter P k+1 = P k + 2( x k + 1 ) + ( y 2 k - y 2 k ) – ( y k - y k ) + 1 P k+1 = P k + 2( x k + 1 ) + 1

37 Decision Parameter Otherwise, if P k > 0 or positive then y k+1 will be y k -1 and the formula to calculate P k+1 will be:

38 Decision Parameter P k+1 = P k + 2( x k + 1 ) + [ (y k -1) 2 - y 2 k ] – (y k -1- y k ) + 1 P k+1 = P k + 2(x k + 1) + (y 2 k - 2 y k +1 - y 2 k ) – ( y k -1- y k ) + 1 P k+1 = P k + 2( x k + 1 ) - 2 y k + 1 + 1 +1 P k+1 = P k + 2( x k + 1 ) - 2 y k + 2 +1 P k+1 = P k + 2( x k + 1 ) - 2 ( y k – 1 ) + 1

39 Decision Parameter Now a similar case that we observed in line algorithm is that how would starting P k be calculated. For this, the starting pixel position will be (0, r). Therefore, putting this value in equation, we get

40 Decision Parameter P 0 = ( 0 + 1 ) 2 + ( r - ½ ) 2 – r 2 P 0 = 1 + r 2 - r + ¼ – r 2 P 0 = 5/4 – r If radius r is specified as an integer, we can simply round p 0 to: P 0 = 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


Download ppt "Computer Graphics Lecture 06 Circle Drawing Techniques Taqdees A. Siddiqi"

Similar presentations


Ads by Google