1 CS 430/536 Computer Graphics I Circle Drawing and Clipping Week 3, Lecture 6 David Breen, William Regli and Maxim Peysakhov Geometric and Intelligent.

Slides:



Advertisements
Similar presentations
Circle Drawing Asst. Prof. Dr. Ahmet Sayar Kocaeli University
Advertisements

CS 450: COMPUTER GRAPHICS DRAWING ELLIPSES AND OTHER CURVES SPRING 2015 DR. MICHAEL J. REALE.
CS 376 Introduction to Computer Graphics 02 / 02 / 2007 Instructor: Michael Eckmann.
Computer Graphics 4: Bresenham Line Drawing Algorithm, Circle Drawing & Polygon Filling By:Kanwarjeet Singh.
CS 450: COMPUTER GRAPHICS REVIEW: DRAWING LINES AND CIRCLES SPRING 2015 DR. MICHAEL J. REALE.
+ CPCS 391 Computer Graphics 1 Instructor: Dr. Sahar Shabanah Lecture 3.
Larry F. Hodges (modified by Amos Johnson) 1 Design of Line, Circle & Ellipse Algorithms.
Komputer Grafik 2 (AK045206) Scan Conversion 1/31 Scan Conversion.
3/2/04© University of Wisconsin, CS559 Spring 2004 Last Time General Perspective –Methods for specifying the view volume As a set of clip planes As a field.
David Breen, William Regli and Maxim Peysakhov
Raster conversion algorithms for line and circle
CS5500 Computer Graphics © Chun-Fa Chang, Spring 2007 CS5500 Computer Graphics May 3, 2007.
CS123 | INTRODUCTION TO COMPUTER GRAPHICS Andries van Dam © Scan Conversion CS123 1 of 44Scan Conversion - 10/14/2014.
Rasterization Foley, Ch: 3. Pixels are represented as disjoint circles centered on uniform grid Each (x,y) of the grid has a pixel Y X (1,1) (1,2) (0,0)
Circle Drawing algo..
CGMB214: Introduction to Computer Graphics
Rasterizing primitives: know where to draw the line Dr Nicolas Holzschuch University of Cape Town Modified.
Dr. Scott Schaefer Scan Conversion of Lines. 2/78 Displays – Cathode Ray Tube.
1/1/20001 Topic >>>> Scan Conversion CSE Computer Graphics.
College of Computer and Information Science, Northeastern UniversitySeptember 12, CS U540 Computer Graphics Prof. Harriet Fell Spring 2009 Lecture.
Jehee Lee Seoul National University
WHERE TO DRAW A LINE?? Line drawing is accomplished by calculating intermediate positions along the line path between specified end points. Precise definition.
Scan Conversion Line and Circle
Computing & Information Sciences Kansas State University CIS 536/636 Introduction to Computer Graphics Lecture 6 of 41 William H. Hsu Department of Computing.
CS 450: COMPUTER GRAPHICS REVIEW: DRAWING ELLIPSES AND OTHER CURVES SPRING 2015 DR. MICHAEL J. REALE.
Larry F. Hodges 1 Design of Line and Circle Algorithms.
1 CS 430/536 Computer Graphics I Line Drawing Week 1, Lecture 2 David Breen, William Regli and Maxim Peysakhov Geometric and Intelligent Computing Laboratory.
1 CS 430/536 Computer Graphics I 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli and Maxim Peysakhov.
10/15/02 (c) 2002 University of Wisconsin, CS559 Last Time Clipping.
1 Circle Drawing Algorithms Pictures snagged from
What is the standard form of a parabola who has a focus of ( 1,5) and a directrix of y=11.
Graphics Output Primitives
Line Drawing and Generalization. Outline  overview  line drawing  circle drawing  curve drawing.
1 CS 430/536 Computer Graphics I Polygon Clipping and Filling Week 3, Lecture 5 David Breen, William Regli and Maxim Peysakhov Geometric and Intelligent.
ELLIPSE GENERATING ALGORITHMS 1. DEFINITION Ellipse is an elongated circle. Elliptical curves can be generated by modifying circle-drawing procedures.
1 CS 430/536 Computer Graphics I Curve Drawing Algorithms Week 4, Lecture 8 David Breen, William Regli and Maxim Peysakhov Geometric and Intelligent Computing.
MIDPOINT CIRCLE & ELLIPSE GENERARTING ALGORITHMS
November 18, We could solve for y in terms of x ( x 0, y 0 ) are the origin points A Simple Circle Drawing Algorithm The equation for a circle.
10/15/02 (c) 2002 University of Wisconsin, CS559 Who Am I? Prof Stephen Chenney These notes will be online after the lecture – in fact they’re online already.
10/19/04© University of Wisconsin, CS559 Fall 2004 Last Time Clipping –Why we care –Sutherland-Hodgman –Cohen-Sutherland –Intuition for Liang-Barsky Homework.
Midpoint Circle Algorithm
CS 325 Introduction to Computer Graphics 02 / 03 / 2010 Instructor: Michael Eckmann.
1 CS 430/585 Computer Graphics I 3D Modeling: Subdivision Surfaces & Solid Modeling Week 9, Lecture 17 David Breen, William Regli and Maxim Peysakhov Geometric.
1 CSCE 441 Lecture 2: Scan Conversion of Lines Jinxiang Chai.
1 CS 430/536 Computer Graphics I B-Splines and NURBS Week 5, Lecture 9 David Breen, William Regli and Maxim Peysakhov Geometric and Intelligent Computing.
Lecture 15: Raster Graphics and Scan Conversion
1 Bresenham’s Circle Algorithm Define:D(s i ) = distance of p 3 from circle D(t i ) = distance of p 2 from circle i.e.D(s i ) = (x i + 1) 2 + y i 2 – r.
Instructor: Dr. Shereen Aly Taie If (P>0)
Computer Graphics : Bresenham Line Drawing Algorithm, Circle Drawing
Computer Graphics CC416 Lecture 04: Bresenham Line Algorithm & Mid-point circle algorithm Dr. Manal Helal – Fall 2014.
Write Bresenham’s algorithm for generation of line also indicate which raster locations would be chosen by Bresenham’s algorithm when scan converting.
Computer Graphics Lecture 07 Ellipse and Other Curves Taqdees A. Siddiqi
Computer Graphics Lecture 06 Circle Drawing Techniques Taqdees A. Siddiqi
OUTPUT PRIMITIVES CEng 477 Computer Graphics METU, 2004.
CS552: Computer Graphics Lecture 16: Polygon Filling.
Primitive graphic objects
Scan Conversion or Rasterization
Lecture 31 – Conic Sections
(c) 2002 University of Wisconsin, CS559
Scan Conversion or Rasterization
Lecture 05: Mid-point Ellipse algorithm Dr. Manal Helal – Fall 2014
Prof. Harriet Fell Spring 2007 Lecture 5 – January 17, 2006
Chapter Three Part I Output Primitives CS 380.
CS 430/536 Computer Graphics I Intro to Curves Week 4, Lecture 7
CSCE 441 Lecture 2: Scan Conversion of Lines
© University of Wisconsin, CS559 Fall 2004
Scan Conversion of Circles
Rasterizing Lines 1 Lecture 32 Mon, Nov 12, 2007.
Chapter 3 Graphics Output Primitives
Presentation transcript:

1 CS 430/536 Computer Graphics I Circle Drawing and Clipping Week 3, Lecture 6 David Breen, William Regli and Maxim Peysakhov Geometric and Intelligent Computing Laboratory Department of Computer Science Drexel University

2 Outline Scan conversion of circles Clipping circles Scan conversion of ellipses

3 Scan Conversion of Circles Generalization of the line algorithm Assumptions: –circle at (0,0) –Fill 1/8 of the circle, then use symmetry Using the 8-way symmetry of a circle: 1994 Foley/VanDam/Finer/Huges/Phillips ICG Not using the 8-way symmetry of a circle

4 Scan Conversion of Circles Implicit representation of the circle function: Note: 0 for points outside the circle

5 Scan Conversion of Circles Assume we finished pixel What pixel to draw next? (going clockwise) Note: the slope of the circular arc is between 0 and –1 –Hence, choice is between: E and SE Idea: If the circle passes above the midpoint M, then we go to E next, otherwise we go to SE 1994 Foley/VanDam/Finer/Huges/Phillips ICG

6 Scan Conversion of Circles We need a decision variable D: If then M is below the arc, hence the E pixel is closer to the line. If then M is above the arc, hence the SE pixel is closer to the line Foley/VanDam/Finer/Huges/Phillips ICG

7 Case I: When E is next What increment for computing a new D? Next midpoint is: Hence, increment by: Pics/Math courtesy of Dave UMD-CP

8 Case II: When SE is next What increment for computing a new D? Next midpoint is: Hence, increment by: Pics/Math courtesy of Dave UMD-CP

9 Scan Conversion of Circles How to compute the initial value of D: We start with x = 0 and y = R, so the first midpoint is at x = 1, y = R-1/2:

10 Scan Conversion of Circles Converting this to an integer algorithm: –Need only know if D is positive or negative –D & R are integers –Note D is incremented by an integer value –Therefore D + 1/4 is positive only when D is positive; it is safe to drop the 1/4 Hence: set the initial D to 1 – R (subtracting 1/4)

11 Circle Scan Conversion Algorithm Given radius R and center (0, 0) –First point  (0, R) Initial decision parameter D = 1- R While x  y –If (D < 0) x++; D += 2x + 3; – else x++; y--; D += 2(x - y) + 5 –WritePoints(x,y)

12 WritePoints(x,y) Writes pixels to the seven other octants

13 Clipping Circles Accept/Reject test –Does bounding box of the circle intersect with clipping box? If yes, condition pixel write on clipping box inside/outside test

14 Properties of Ellipses “Elongated circle” For all points on ellipse, sum of distances to foci is constant d 1 + d 2 = const If F 1 =(x 1, y 1 ) and F 2 =(x 2, y 2 ) then

15 Properties of Ellipses Equation simplified if ellipse axis parallel to coordinate axis Parametric form

16 Symmetry Considerations 4-way symmetry Unit steps in x until reach region boundary Switch to unit steps in y Step in x while Switch to steps in y when

17 Midpoint Algorithm (initializing) Similar to circles The initial value for region 1 The initial value for region 2 We have initial values, now we need the increments 1994 Foley/VanDam/Finer/Huges/Phillips ICG

18 Making a Decision Computing the decision variable If then M is below the arc, hence the E pixel is closer to the line. If then M is above the arc, hence the SE pixel is closer to the line Foley/VanDam/Finer/Huges/Phillips ICG

19 Computing the Increment 1994 Foley/VanDam/Finer/Huges/Phillips ICG E case SE case

20 Computing the increment incrementally… and can be pre-computed Only and need to be recomputed for each point At the initial position (0,r y ), and The new values of the increment can be computed by adding to (1 & 2) and subtracting from (2) 1994 Foley/VanDam/Finer/Huges/Phillips ICG Computing the Increment

21 Computing the Increment in 2 nd Region Decision variable in 2 nd region If then M is left of the arc, hence the SE pixel is closer to the line. If then M is right of the arc, hence the S pixel is closer to the line Foley/VanDam/Finer/Huges/Phillips ICG

22 Computing the Increment in 2 nd Region 1994 Foley/VanDam/Finer/Huges/Phillips ICG SE case S case

23 Midpoint Algorithm for Ellipses Set first point to (0,r y ) Set the Decision variable to Loop (x = x+1) If D < 0 then pick E and If D ≥ 0 then pick SE and Until Set first point to the last computed Set the Decision variable to Loop (y = y - 1) If D < 0 then pick SE and If D ≥ 0 then pick S and Until y < 0 Use symmetry to complete the ellipse Region 1Region 2

24 Symmetry Considerations 4-way symmetry Unit steps in x until reach region boundary Switch to unit steps in y Step in x while Switch to steps in y when

25 Midpoint Algorithm (initializing) Similar to circles The initial value for region 1 The initial value for region 2 We have initial values, now we need the increments 1994 Foley/VanDam/Finer/Huges/Phillips ICG

26 Making a Decision Computing the decision variable If then M is below the arc, hence the E pixel is closer to the line. If then M is above the arc, hence the SE pixel is closer to the line Foley/VanDam/Finer/Huges/Phillips ICG

27 Computing the Increment Computing the increment Nice but we should use addition and subtraction only 1994 Foley/VanDam/Finer/Huges/Phillips ICG

28 Computing the increment incrementally… and can be pre-computed Only and need to be recomputed for each point At the initial position (0,r y ), and The new values of the increment can be computed by adding to (1 & 2) and subtracting from (2) 1994 Foley/VanDam/Finer/Huges/Phillips ICG Computing the Increment

29 Computing the Increment in 2 nd Region Computing the increment in 2 nd region If then M is below the arc, hence the SE pixel is closer to the line. If then M is above the arc, hence the S pixel is closer to the line Foley/VanDam/Finer/Huges/Phillips ICG

30 Midpoint Algorithm for Ellipses Set first point to (0,r y ) Set the Decision variable to Loop (x = x+1) If D < 0 then pick E and If D ≥ 0 then pick SE and With Until Set first point to the last computed Set the Decision variable to Loop (y = y - 1) If D < 0 then pick SE and If D ≥ 0 then pick S and With the same increments Until y < 0 Use symmetry to complete the arc Region 1Region 2