with a Digital Differential Algorithm tom/lecture-notes/graphics/dda-circle/dda-circle.
|
|
- Shannon Brooks
- 5 years ago
- Views:
Transcription
1 to Draw a Circle with a Digital Differential Algorithm tom Tom Carter Computer Science CSU Stanislaus tom@csustan.csustan.edu tom/lecture-notes/graphics/dda-circle/dda-circle.pdf October 9,
2 Our general topics: Drawing a Circle in a Raster 3 The DDA Circle Algorithm (first steps) 7 The DDA Circle Algorithm 16 2
3 Drawing a Circle in a Raster There are times when we want to draw a circle on a raster device. We ll develop a reasonably optimized algorithm for doing this. The approach we ll take is to develop a digital differential algorithm. The raster is a two-dimensional array of pixels. We will assume we are given a center (CX, CY ) (in pixel coordinates) and a radius R (also in pixel coordinates). One nice thing about a circle is that it has many symmetries. In fact, we can draw a circle by specifying pixels we want to turn on in just one octant, say X = 0 to X = Y. 3
4 Here s an example of what this will look like: A circle in a raster 4
5 Using symmetries, we only work in one octant: Symmetries - just one octant 5
6 We ll make some simplifying assumptions in the derivation. 1. Our pixel coordinates go from left to right, and bottom to top, the way they do in the first quadrant in mathematics. 2. Our pixels are square (so we don t need to worry about aspect ratio... ). 3. Our pixels are either off or on (i.e., no gray-scale... ). 6
7 The DDA Circle Algorithm (first steps) To keep things simple, we ll do our calculations as though center of the circle is at (0, 0). We ll assume we have a procedure (circlepoints(cx, CY, X, Y )) that takes advantage of the symmetries, and turns on 8 (or 4... ) pixels once we specify the center of the circle (CX, CY ) and the pixel to start with relative to the center. 7
8 With the assumptions we have made, our stepwise algorithm will have the outline: X = 0 Y = R circlepoints(cx, CY, X, Y) While (X < Y) X = X + 1 determine Y value circlepoints(cx, CY, X, Y) EndWhile Thus, if we can figure out a fast way to determine the Y value to turn on, we will be done. 8
9 We ll do this in an iterative fashion. As we step along in the X direction, we can see that either Y stays the same, or Y decreases by 1. All we really need to do is figure out when to decrement Y. Algorithm, version 2: X = 0 Y = R circlepoints(cx, CY, X, Y) While (X < Y) X = X + 1 If we should decrement Y Y = Y - 1 EndIf circlepoints(cx, CY, X, Y) EndWhile 9
10 We need to develop a decision function (or decision variable), sometimes called an indicator variable, that will tell us when to decrement Y. Let s start with the function F (x, y) = x 2 + y 2 r 2 For any point (x, y) on the circle, we have F (x, y) = 0. If F (x, y) < 0, the point is inside the circle, and if F (x, y) > 0, the point is outside the circle. So, suppose the current pixel is (X, Y ). We need to decide whether the next pixel should be (X + 1, Y ) or (X + 1, Y 1). We ll create a decision variable that looks at the average of 10
11 the two pixels we are considering, call it M, and checks whether M is inside or outside the circle: D = F (M) = F (X + 1, Y 1 2 ) = (X + 1) 2 + (Y 1 2 )2 R 2 = X 2 + 2X Y 2 Y R2 If D < 0, then M is still inside the circle, so we don t want to decrement Y yet. We don t want to calculate D at each step (floating point operations, etc.), but instead want to update the value incrementally. 11
12 There are two possibilities. If we didn t decrement Y, then the new value of D will be D new = (X + 2) 2 + (Y 1 2 )2 R 2 = X 2 + 4X Y 2 Y R2 and the increment in D will then be D new D old = X 2 + 4X Y 2 Y R2 (X 2 + 2X Y 2 Y R2 ) = 2X
13 If we did decrement Y, then the new value of D will be D new = (X + 2) 2 + (Y 3 2 )2 R 2 = X 2 + 4X Y 2 3Y R2 and the increment in D will then be D new D old = X 2 + 4X Y 2 3Y R2 (X 2 + 2X Y 2 Y R2 ) = 2X 2Y
14 The other thing we need to do is establish the starting value for D: D 0 = F (1, R 1 2 ) = 1 + (R 1 2 )2 R 2 = 1 + R 2 R R2 = 5 4 R Given that we want to work with integers (not floating point), we will go ahead and use D 0 = 1 R. Technically, this means that we should do the comparison D < 1 4 for our decision variable, but since we are working with integers, this is no different from D < 0. 14
15 We can thus put together our algorithm as: X = 0 Y = R D = 1 - R circlepoints(cx, CY, X, Y) While (X < Y) If D < 0 D = D + 2 * X + 3 Else Y = Y - 1 D = D + 2 * (X - Y) + 5 EndIf X = X + 1 circlepoints(cx, CY, X, Y) EndWhile 15
16 The DDA Circle Algorithm Our final algorithm looks like this: void circledda(int xcenter, int ycenter, int radius) { int x; int y; int p; x = 0; y = radius; p = 1 - radius; /**/ circlepoints(xcenter, ycenter, x, y); 16
17 } while (x < y) { x++; if (p < 0) { p += 2*x+3; /**/ } else { y--; p += 2*(x-y)+ 5; /**/ } circlepoints(xcenter, ycenter, x, y); } 17
18 The one other piece is the circlepoints procedure, that takes advantage of the symmetries of the circle to plot 8 (or 4) points. void circlepoints(int cx, int cy, int x, int y) { int cxpx = cx + x; int cxmx = cx - x; int cxpy = cx + y; int cxmy = cx - y; int cypx = cy + x; int cymx = cy - x; int cypy = cy + y; int cymy = cy - y; 18
19 if (x == 0) { if ((0 <= cx) && (cx < RDim) && (0 <= (cypy)) && ((cypy) < RDim)) theraster[cx][cypy] = 1; if ((0 <= cx) && (cx < RDim) && (0 <= (cymy)) && ((cymy) < RDim)) theraster[cx][cymy] = 1; if ((0 <= (cxpy)) && ((cxpy) < RDim) && (0 <= (cy)) && ((cy) < RDim)) theraster[cxpy][cy] = 1; if ((0 <= (cxmy)) && ((cxmy) < RDim) && (0 <= (cy)) && ((cy) < RDim)) theraster[cxmy][cy] = 1; } else if (x == y) { if ((0 <= (cxpx)) && ((cxpx) < RDim) 19
20 && (0 <= (cy + y)) && ((cy + y) < RDim)) theraster[cxpx][cy + y] = 1; if ((0 <= (cxmx)) && ((cxmx) < RDim) && (0 <= (cy + y)) && ((cy + y) < RDim)) theraster[cxmx][cy + y] = 1; if ((0 <= (cxpx)) && ((cxpx) < RDim) && (0 <= (cymy)) && ((cymy) < RDim)) theraster[cxpx][cymy] = 1; if ((0 <= (cxmx)) && ((cxmx) < RDim) && (0 <= (cymy)) && ((cymy) < RDim)) theraster[cxmx][cymy] = 1; } else if (x < y) { if ((0 <= (cxpx)) && ((cxpx) < RDim) && (0 <= (cy + y)) && ((cy + y) < RDim)) theraster[cxpx][cy + y] = 1; 20
21 if ((0 <= (cxmx)) && ((cxmx) < RDim) && (0 <= (cy + y)) && ((cy + y) < RDim)) theraster[cxmx][cy + y] = 1; if ((0 <= (cxpx)) && ((cxpx) < RDim) && (0 <= (cymy)) && ((cymy) < RDim)) theraster[cxpx][cymy] = 1; if ((0 <= (cxmx)) && ((cxmx) < RDim) && (0 <= (cymy)) && ((cymy) < RDim)) theraster[cxmx][cymy] = 1; if ((0 <= (cx + y)) && ((cx +y) < RDim) && (0 <= (cypx)) && ((cypx) < RDim)) theraster[cx + y][cypx] = 1; if ((0 <= (cxmy)) && ((cxmy) < RDim) && (0 <= (cypx)) && ((cypx) < RDim)) theraster[cxmy][cypx] = 1; if ((0 <= (cx + y)) && ((cx + y) < RDim) 21
22 && (0 <= (cymx)) && ((cymx) < RDim)) theraster[cx + y][cymx] = 1; if ((0 <= (cxmy)) && ((cxmy) < RDim) && (0 <= (cymx)) && ((cymx) < RDim)) /**/ theraster[cxmy][cymx] = 1; } } To top 22
Output Primitives Lecture: 4. Lecture 4
Lecture 4 Circle Generating Algorithms Since the circle is a frequently used component in pictures and graphs, a procedure for generating either full circles or circular arcs is included in most graphics
More informationOutput Primitives. Dr. S.M. Malaek. Assistant: M. Younesi
Output Primitives Dr. S.M. Malaek Assistant: M. Younesi Output Primitives Output Primitives: Basic geometric structures (points, straight line segment, circles and other conic sections, quadric surfaces,
More informationCPSC / Scan Conversion
CPSC 599.64 / 601.64 Computer Screens: Raster Displays pixel rasters (usually) square pixels in rectangular raster evenly cover the image problem no such things such as lines, circles, etc. scan conversion
More informationCS 130. Scan Conversion. Raster Graphics
CS 130 Scan Conversion Raster Graphics 2 1 Image Formation Computer graphics forms images, generally two dimensional, using processes analogous to physical imaging systems like: - Cameras - Human visual
More informationAnnouncements. Midterms graded back at the end of class Help session on Assignment 3 for last ~20 minutes of class. Computer Graphics
Announcements Midterms graded back at the end of class Help session on Assignment 3 for last ~20 minutes of class 1 Scan Conversion Overview of Rendering Scan Conversion Drawing Lines Drawing Polygons
More informationScan Conversion. Drawing Lines Drawing Circles
Scan Conversion Drawing Lines Drawing Circles 1 How to Draw This? 2 Start From Simple How to draw a line: y(x) = mx + b? 3 Scan Conversion, a.k.a. Rasterization Ideal Picture Raster Representation Scan
More informationRasterization: Geometric Primitives
Rasterization: Geometric Primitives Outline Rasterizing lines Rasterizing polygons 1 Rasterization: What is it? How to go from real numbers of geometric primitives vertices to integer coordinates of pixels
More informationOpenGL Graphics System. 2D Graphics Primitives. Drawing 2D Graphics Primitives. 2D Graphics Primitives. Mathematical 2D Primitives.
D Graphics Primitives Eye sees Displays - CRT/LCD Frame buffer - Addressable pixel array (D) Graphics processor s main function is to map application model (D) by projection on to D primitives: points,
More informationComputer Graphics : Bresenham Line Drawing Algorithm, Circle Drawing & Polygon Filling
Computer Graphics : Bresenham Line Drawing Algorithm, Circle Drawing & Polygon Filling Downloaded from :www.comp.dit.ie/bmacnamee/materials/graphics/006- Contents In today s lecture we ll have a loo at:
More informationLine Drawing Week 6, Lecture 9
CS 536 Computer Graphics Line Drawing Week 6, Lecture 9 David Breen, William Regli and axim Peysakhov Department of Computer Science Drexel University Outline Line drawing Digital differential analyzer
More informationMODULE - 4. e-pg Pathshala
e-pg Pathshala MODULE - 4 Subject : Computer Science Paper: Computer Graphics and Visualization Module: Midpoint Circle Drawing Procedure Module No: CS/CGV/4 Quadrant 1 e-text Before going into the Midpoint
More informationRasterization, or What is glbegin(gl_lines) really doing?
Rasterization, or What is glbegin(gl_lines) really doing? Course web page: http://goo.gl/eb3aa February 23, 2012 Lecture 4 Outline Rasterizing lines DDA/parametric algorithm Midpoint/Bresenham s algorithm
More informationComputer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 14
Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 14 Scan Converting Lines, Circles and Ellipses Hello everybody, welcome again
More informationIn today s lecture we ll have a look at: A simple technique The mid-point circle algorithm
Drawing Circles In today s lecture we ll have a look at: Circle drawing algorithms A simple technique The mid-point circle algorithm Polygon fill algorithms Summary raster drawing algorithms A Simple Circle
More informationFrom Ver(ces to Fragments: Rasteriza(on
From Ver(ces to Fragments: Rasteriza(on From Ver(ces to Fragments 3D vertices vertex shader rasterizer fragment shader final pixels 2D screen fragments l determine fragments to be covered l interpolate
More informationTopic #1: Rasterization (Scan Conversion)
Topic #1: Rasterization (Scan Conversion) We will generally model objects with geometric primitives points, lines, and polygons For display, we need to convert them to pixels for points it s obvious but
More informationRaster Scan Displays. Framebuffer (Black and White)
Raster Scan Displays Beam of electrons deflected onto a phosphor coated screen Phosphors emit light when excited by the electrons Phosphor brightness decays -- need to refresh the display Phosphors make
More informationPoints and lines. x x 1 + y 1. y = mx + b
Points and lines Point is the fundamental element of the picture representation. It is nothing but the position in a plan defined as either pairs or triplets of number depending on whether the data are
More informationDepartment of Computer Sciences Graphics Fall 2003 (Lecture 2) Pixels
Pixels Pixel: Intensity or color sample. Raster Image: Rectangular grid of pixels. Rasterization: Conversion of a primitive s geometric representation into A set of pixels. An intensity or color for each
More information(Refer Slide Time: 00:03:51)
Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture 17 Scan Converting Lines, Circles and Ellipses Hello and welcome everybody
More informationScan Converting Circles
Scan Conversion Algorithms CS 460 Computer Graphics Professor Richard Eckert Circles Ellipses and Other 2-D Curves Text February 16, 2004 Scan Converting Circles Given: Center: (h,k) Radius: r Equation:
More informationCS 450: COMPUTER GRAPHICS REVIEW: DRAWING LINES AND CIRCLES SPRING 2015 DR. MICHAEL J. REALE
CS 450: COMPUTER GRAPHICS REVIEW: DRAWING LINES AND CIRCLES SPRING 2015 DR. MICHAEL J. REALE DRAWING PRIMITIVES: LEGACY VS. NEW Legacy: specify primitive in glbegin() glbegin(gl_points); glvertex3f(1,5,0);
More informationScan Conversion. CMP 477 Computer Graphics S. A. Arekete
Scan Conversion CMP 477 Computer Graphics S. A. Areete What is Scan-Conversion? 2D or 3D objects in real world space are made up of graphic primitives such as points, lines, circles and filled polygons.
More informationUNIT 2 GRAPHIC PRIMITIVES
UNIT 2 GRAPHIC PRIMITIVES Structure Page Nos. 2.1 Introduction 46 2.2 Objectives 46 2.3 Points and Lines 46 2.4 Line Generation Algorithms 48 2.4.1 DDA Algorithm 49 2.4.2 Bresenhams Line Generation Algorithm
More informationProgramming revision. Revision tip: Focus on the things you find difficult first.
Programming revision Revision tip: Focus on the things you find difficult first. Task Time (minutes) a 1. Complete self assessment sheet. 2 2. Read through the chapter on programming. 15 3. Work through
More informationCS 450: COMPUTER GRAPHICS RASTERIZING LINES SPRING 2016 DR. MICHAEL J. REALE
CS 45: COMPUTER GRAPHICS RASTERIZING LINES SPRING 6 DR. MICHAEL J. REALE OBJECT-ORDER RENDERING We going to start on how we will perform object-order rendering Object-order rendering Go through each OBJECT
More informationCS 4731: Computer Graphics Lecture 21: Raster Graphics: Drawing Lines. Emmanuel Agu
CS 4731: Computer Graphics Lecture 21: Raster Graphics: Drawing Lines Emmanuel Agu 2D Graphics Pipeline Clipping Object World Coordinates Applying world window Object subset window to viewport mapping
More informationA New Line Drawing Algorithm Based on Sample Rate Conversion
A New Line Drawing Algorithm Based on Sample Rate Conversion c 2002, C. Bond. All rights reserved. February 5, 2002 1 Overview In this paper, a new method for drawing straight lines suitable for use on
More informationOutput Primitives Lecture: 3. Lecture 3. Output Primitives. Assuming we have a raster display, a picture is completely specified by:
Lecture 3 Output Primitives Assuming we have a raster display, a picture is completely specified by: - A set of intensities for the pixel positions in the display. - A set of complex objects, such as trees
More informationGRAPHICS OUTPUT PRIMITIVES
CHAPTER 3 GRAPHICS OUTPUT PRIMITIVES LINE DRAWING ALGORITHMS DDA Line Algorithm Bresenham Line Algorithm Midpoint Circle Algorithm Midpoint Ellipse Algorithm CG - Chapter-3 LINE DRAWING Line drawing is
More informationDisplay Technologies: CRTs Raster Displays
Rasterization Display Technologies: CRTs Raster Displays Raster: A rectangular array of points or dots Pixel: One dot or picture element of the raster Scanline: A row of pixels Rasterize: find the set
More informationComputer Graphics D Graphics Algorithms
! Computer Graphics 2014! 2. 2D Graphics Algorithms Hongxin Zhang State Key Lab of CAD&CG, Zhejiang University 2014-09-26! Screen Nikon D40 Sensors 3 Rasterization - The task of displaying a world modeled
More informationOverview of Computer Graphics
Application of Computer Graphics UNIT- 1 Overview of Computer Graphics Computer-Aided Design for engineering and architectural systems etc. Objects maybe displayed in a wireframe outline form. Multi-window
More informationRASTERIZING POLYGONS IN IMAGE SPACE
On-Line Computer Graphics Notes RASTERIZING POLYGONS IN IMAGE SPACE Kenneth I. Joy Visualization and Graphics Research Group Department of Computer Science University of California, Davis A fundamental
More informationDigital Differential Analyzer Bresenhams Line Drawing Algorithm
Bresenham s Line Generation The Bresenham algorithm is another incremental scan conversion algorithm. The big advantage of this algorithm is that, it uses only integer calculations. Difference Between
More informationAnimations involving numbers
136 Chapter 8 Animations involving numbers 8.1 Model and view The examples of Chapter 6 all compute the next picture in the animation from the previous picture. This turns out to be a rather restrictive
More informationChapter 8: Implementation- Clipping and Rasterization
Chapter 8: Implementation- Clipping and Rasterization Clipping Fundamentals Cohen-Sutherland Parametric Polygons Circles and Curves Text Basic Concepts: The purpose of clipping is to remove objects or
More informationOUTPUT PRIMITIVES. CEng 477 Introduction to Computer Graphics METU, 2007
OUTPUT PRIMITIVES CEng 477 Introduction to Computer Graphics METU, 007 Recap: The basic forward projection pipeline: MCS Model Model Modeling Transformations M M 3D World Scene Viewing Transformations
More informationUNIT -8 IMPLEMENTATION
UNIT -8 IMPLEMENTATION 1. Discuss the Bresenham s rasterization algorithm. How is it advantageous when compared to other existing methods? Describe. (Jun2012) 10M Ans: Consider drawing a line on a raster
More informationIntroduction to Computer Graphics (CS602) Lecture 05 Line Drawing Techniques
Introduction to Computer Graphics (CS602) Lecture 05 Line Drawing Techniques 5.1 Line A line, or straight line, is, roughly speaking, an (infinitely) thin, (infinitely) long, straight geometrical object,
More informationTópicos de Computação Gráfica Topics in Computer Graphics 10509: Doutoramento em Engenharia Informática. Chap. 2 Rasterization.
Tópicos de Computação Gráfica Topics in Computer Graphics 10509: Doutoramento em Engenharia Informática Chap. 2 Rasterization Rasterization Outline : Raster display technology. Basic concepts: pixel, resolution,
More informationClustering in Networks
Clustering in Networks (Spectral Clustering with the Graph Laplacian... a brief introduction) Tom Carter Computer Science CSU Stanislaus http://csustan.csustan.edu/ tom/clustering April 1, 2012 1 Our general
More informationPipeline implementation II
Pipeline implementation II Overview Line Drawing Algorithms DDA Bresenham Filling polygons Antialiasing Rasterization Rasterization (scan conversion) Determine which pixels that are inside primitive specified
More information1 Introduction to Graphics
1 1.1 Raster Displays The screen is represented by a 2D array of locations called pixels. Zooming in on an image made up of pixels The convention in these notes will follow that of OpenGL, placing the
More informationChapter 3: Graphics Output Primitives. OpenGL Line Functions. OpenGL Point Functions. Line Drawing Algorithms
Chater : Grahics Outut Primitives Primitives: functions in grahics acage that we use to describe icture element Points and straight lines are the simlest rimitives Some acages include circles, conic sections,
More informationScan Conversion. Lines and Circles
Scan Conversion Lines and Circles (Chapter 3 in Foley & Van Dam) 2D Line Implicit representation: αx + βy + γ = 0 Explicit representation: y y = mx+ B m= x Parametric representation: x P= y P = t y P +
More information1.7 Limit of a Function
1.7 Limit of a Function We will discuss the following in this section: 1. Limit Notation 2. Finding a it numerically 3. Right and Left Hand Limits 4. Infinite Limits Consider the following graph Notation:
More informationCS102: Variables and Expressions
CS102: Variables and Expressions The topic of variables is one of the most important in C or any other high-level programming language. We will start with a simple example: int x; printf("the value of
More informationLecture Transcript While and Do While Statements in C++
Lecture Transcript While and Do While Statements in C++ Hello and welcome back. In this lecture we are going to look at the while and do...while iteration statements in C++. Here is a quick recap of some
More informationMET71 COMPUTER AIDED DESIGN
UNIT - II BRESENHAM S ALGORITHM BRESENHAM S LINE ALGORITHM Bresenham s algorithm enables the selection of optimum raster locations to represent a straight line. In this algorithm either pixels along X
More informationUnit 14: Transformations (Geometry) Date Topic Page
Unit 14: Transformations (Geometry) Date Topic Page image pre-image transformation translation image pre-image reflection clockwise counterclockwise origin rotate 180 degrees rotate 270 degrees rotate
More informationCS2401 Computer Graphics
UNIT I - 2D PRIMITIVES Output primitives Line, Circle and Ellipse drawing algorithms - Attributes of output primitives Two dimensional Geometric transformation - Two dimensional viewing Line, Polygon,
More informationR asterisation. Part I: Simple Lines. Affine transformation. Transform Render. Rasterisation Line Rasterisation 2/16
ECM2410:GraphicsandAnimation R asterisation Part I: Simple Lines Rasterisation 1/16 Rendering a scene User space Device space Affine transformation Compose Transform Render Com pose from primitives (lines,
More informationPointers, Arrays and Parameters
Pointers, Arrays and Parameters This exercise is different from our usual exercises. You don t have so much a problem to solve by creating a program but rather some things to understand about the programming
More informationComputer Graphics: 6-Rasterization
Computer Graphics: 6-Rasterization Prof. Dr. Charles A. Wüthrich, Fakultät Medien, Medieninformatik Bauhaus-Universität Weimar caw AT medien.uni-weimar.de Raster devices In modern devices the smallest
More informationBinary Search. Roland Backhouse February 5th, 2001
1 Binary Search Roland Backhouse February 5th, 2001 Outline 2 An implementation in Java of the card-searching algorithm is presented. Issues concerning the correctness of the implementation are raised
More informationIntroduction to Programming in C Department of Computer Science and Engineering. Lecture No. #44. Multidimensional Array and pointers
Introduction to Programming in C Department of Computer Science and Engineering Lecture No. #44 Multidimensional Array and pointers In this video, we will look at the relation between Multi-dimensional
More informationAn Improved Algorithm for Scan-converting a Line
An Improved Algorithm for Scan-converting a Line *Md. Hasanul Kabir 1, Md. Imrul Hassan 2, Abdullah Azfar 1 1 Department of Computer Science & Information Technology (CIT) 2 Department of Electrical &
More informationComputer Graphics: Graphics Output Primitives Line Drawing Algorithms
Computer Graphics: Graphics Output Primitives Line Drawing Algorithms By: A. H. Abdul Hafez Abdul.hafez@hku.edu.tr, 1 Outlines 1. Basic concept of lines in OpenGL 2. Line Equation 3. DDA Algorithm 4. DDA
More informationRasterization and Graphics Hardware. Not just about fancy 3D! Rendering/Rasterization. The simplest case: Points. When do we care?
Where does a picture come from? Rasterization and Graphics Hardware CS559 Course Notes Not for Projection November 2007, Mike Gleicher Result: image (raster) Input 2D/3D model of the world Rendering term
More informationPolar Coordinates. 2, π and ( )
Polar Coordinates Up to this point we ve dealt exclusively with the Cartesian (or Rectangular, or x-y) coordinate system. However, as we will see, this is not always the easiest coordinate system to work
More informationby modifying the glutinitwindowsize() function you can change the screen size to whatever you please.
Zoe Veale Lab 2 Draw2 part 1: I edited the glutinitwindowsize() function tom change the size of my screen window. int main(int argc, char** argv) glutinit(&argc, argv); //initialize toolkit glutinitdisplaymode
More informationLossy Coding 2 JPEG. Perceptual Image Coding. Discrete Cosine Transform JPEG. CS559 Lecture 9 JPEG, Raster Algorithms
CS559 Lecture 9 JPEG, Raster Algorithms These are course notes (not used as slides) Written by Mike Gleicher, Sept. 2005 With some slides adapted from the notes of Stephen Chenney Lossy Coding 2 Suppose
More informationComputer Graphics. - Rasterization - Philipp Slusallek
Computer Graphics - Rasterization - Philipp Slusallek Rasterization Definition Given some geometry (point, 2D line, circle, triangle, polygon, ), specify which pixels of a raster display each primitive
More informationCS 548: COMPUTER GRAPHICS DRAWING LINES AND CIRCLES SPRING 2015 DR. MICHAEL J. REALE
CS 548: COMPUTER GRAPHICS DRAWING LINES AND CIRCLES SPRING 05 DR. MICHAEL J. REALE OPENGL POINTS AND LINES OPENGL POINTS AND LINES In OenGL, there are different constants used to indicate what ind of rimitive
More informationComputer Graphics (CS 543) Lecture 10: Rasterization and Antialiasing
Computer Graphics (CS 543) Lecture 10: Rasterization and Antialiasing Prof Emmanuel Agu Computer Science Dept. Worcester Polytechnic Institute (WPI) Recall: Rasterization Rasterization (scan conversion)
More informationModule 01 Processing Recap
Module 01 Processing Recap Processing is a language a library an environment Variables A variable is a named value. It has a type (which can t change) and a current value (which can change). Variables
More informationCircle inversion fractals are based on the geometric operation of inversion of a point with respect to a circle, shown schematically in Fig. 1.
MSE 350 Creating a Circle Inversion Fractal Instructor: R.G. Erdmann In this project, you will create a self-inverse fractal using an iterated function system (IFS). 1 Background: Circle Inversion Circle
More information1. (10 pts) Order the following three images by how much memory they occupy:
CS 47 Prelim Tuesday, February 25, 2003 Problem : Raster images (5 pts). (0 pts) Order the following three images by how much memory they occupy: A. a 2048 by 2048 binary image B. a 024 by 024 grayscale
More informationSection 1.1 The Distance and Midpoint Formulas
Section 1.1 The Distance and Midpoint Formulas 1 y axis origin x axis 2 Plot the points: ( 3, 5), (0,7), ( 6,0), (6,4) 3 Distance Formula y x 4 Finding the Distance Between Two Points Find the distance
More informationStructures, Operators
Structures Typedef Operators Type conversion Structures, Operators Basics of Programming 1 G. Horváth, A.B. Nagy, Z. Zsóka, P. Fiala, A. Vitéz 10 October, 2018 c based on slides by Zsóka, Fiala, Vitéz
More informationLine Drawing. Introduction to Computer Graphics Torsten Möller / Mike Phillips. Machiraju/Zhang/Möller
Line Drawing Introduction to Computer Graphics Torsten Möller / Mike Phillips Rendering Pipeline Hardware Modelling Transform Visibility Illumination + Shading Perception, Color Interaction Texture/ Realism
More informationC Programming Language. Microcomputer Architecture and Interfacing Colorado School of Mines Professor William Hoff
C Programming Language 1 C C is better to use than assembly for embedded systems programming. You can program at a higher level of logic than in assembly, so programs are shorter and easier to understand.
More informationDrawing Fast The Graphics Pipeline
Drawing Fast The Graphics Pipeline CS559 Fall 2015 Lecture 9 October 1, 2015 What I was going to say last time How are the ideas we ve learned about implemented in hardware so they are fast. Important:
More informationImplementation III. Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico
Implementation III Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico Objectives Survey Line Drawing Algorithms - DDA - Bresenham 2 Rasterization
More informationBuilding a Java First-Person Shooter
Building a Java First-Person Shooter Episode 5 Playing with Pixels! [Last update 5/2/2017] Objective This episode does not really introduce any new concepts. Two software defects are fixed (one poorly)
More informationUniversity of Illinois at Urbana-Champaign Department of Computer Science. First Examination
University of Illinois at Urbana-Champaign Department of Computer Science First Examination CS 225 Data Structures and Software Principles Summer 2005 3:00pm 4:15pm Tuesday, July 5 Name: NetID: Lab Section
More informationEfficient Plotting Algorithm
Efficient Plotting Algorithm Sushant Ipte 1, Riddhi Agarwal 1, Murtuza Barodawala 1, Ravindra Gupta 1, Prof. Shiburaj Pappu 1 Computer Department, Rizvi College of Engineering, Mumbai, Maharashtra, India
More informationTypes, Expressions, and States
8/27: solved Types, Expressions, and States CS 536: Science of Programming, Fall 2018 A. Why? Expressions represent values in programming languages, relative to a state. Types describe common properties
More informationBasic Computer Programming (Processing)
Contents 1. Basic Concepts (Page 2) 2. Processing (Page 2) 3. Statements and Comments (Page 6) 4. Variables (Page 7) 5. Setup and Draw (Page 8) 6. Data Types (Page 9) 7. Mouse Function (Page 10) 8. Keyboard
More informationConditional Events. Mouse events and Operators. Dr. Siobhán Drohan Mairead Meagher. Produced by:
Conditional Events Mouse events and Operators Produced by: Dr. Siobhán Drohan Mairead Meagher Department of Computing and Mathematics http://www.wit.ie/ Topics list Mouse Events Recap: Arithmetic Operators
More informationChapter 3. Sukhwinder Singh
Chapter 3 Sukhwinder Singh PIXEL ADDRESSING AND OBJECT GEOMETRY Object descriptions are given in a world reference frame, chosen to suit a particular application, and input world coordinates are ultimately
More informationCS 543: Computer Graphics. Rasterization
CS 543: Computer Graphics Rasterization Robert W. Lindeman Associate Professor Interactive Media & Game Development Department of Computer Science Worcester Polytechnic Institute gogo@wpi.edu (with lots
More informationCSC Computer Graphics
7//7 CSC. Computer Graphics Lecture Kasun@dscs.sjp.ac.l Department of Computer Science Universit of Sri Jaewardanepura Line drawing algorithms DDA Midpoint (Bresenham s) Algorithm Circle drawing algorithms
More informationC++ Data Types. 1 Simple C++ Data Types 2. 3 Numeric Types Integers (whole numbers) Decimal Numbers... 5
C++ Data Types Contents 1 Simple C++ Data Types 2 2 Quick Note About Representations 3 3 Numeric Types 4 3.1 Integers (whole numbers)............................................ 4 3.2 Decimal Numbers.................................................
More informationFrom Vertices to Fragments: Rasterization. Reading Assignment: Chapter 7. Special memory where pixel colors are stored.
From Vertices to Fragments: Rasterization Reading Assignment: Chapter 7 Frame Buffer Special memory where pixel colors are stored. System Bus CPU Main Memory Graphics Card -- Graphics Processing Unit (GPU)
More informationCSI33 Data Structures
Outline Department of Mathematics and Computer Science Bronx Community College October 24, 2018 Outline Outline 1 Chapter 8: A C++ Introduction For Python Programmers Expressions and Operator Precedence
More informationLectures 4 and 5 (Julian) Computer Programming: Skills & Concepts (INF-1-CP1) double; float; quadratic equations. Practical 1.
Lectures 4 and 5 (Julian) Computer Programming: Skills & Concepts (INF-1-CP1) double; float; quadratic equations 4th October, 2010 Integer arithmetic in C. Converting pre-decimal money to decimal. The
More informationLine Drawing. Foundations of Computer Graphics Torsten Möller
Line Drawing Foundations of Computer Graphics Torsten Möller Rendering Pipeline Hardware Modelling Transform Visibility Illumination + Shading Perception, Interaction Color Texture/ Realism Reading Angel
More informationCMSC 435/634: Introduction to Graphics
CMSC 435/634: Introduction to Graphics Midterm Exam October 9, 2002 Instructions: Clearly write your name on this sheet. Answer each problem in the space provided. If you need extra space, write on extra
More informationThe way I feel about music is that there is no right and wrong. Only true and false. Fiona Apple. true false false
5 Conditionals Conditionals 59 That language is an instrument of human reason, and not merely a medium for the expression of thought, is a truth generally admitted. George Boole The way I feel about music
More informationCS112 Lecture: Repetition Statements
CS112 Lecture: Repetition Statements Objectives: Last revised 2/18/05 1. To explain the general form of the java while loop 2. To introduce and motivate the java do.. while loop 3. To explain the general
More informationRendering. A simple X program to illustrate rendering
Rendering A simple X program to illustrate rendering The programs in this directory provide a simple x based application for us to develop some graphics routines. Please notice the following: All points
More informationChapter 7. Iteration. 7.1 Multiple assignment
Chapter 7 Iteration 7.1 Multiple assignment You can make more than one assignment to the same variable; effect is to replace the old value with the new. int bob = 5; System.out.print(bob); bob = 7; System.out.println(bob);
More informationAnnouncements. Lab Friday, 1-2:30 and 3-4:30 in Boot your laptop and start Forte, if you brought your laptop
Announcements Lab Friday, 1-2:30 and 3-4:30 in 26-152 Boot your laptop and start Forte, if you brought your laptop Create an empty file called Lecture4 and create an empty main() method in a class: 1.00
More informationDrawing Fast The Graphics Pipeline
Drawing Fast The Graphics Pipeline CS559 Fall 2016 Lectures 10 & 11 October 10th & 12th, 2016 1. Put a 3D primitive in the World Modeling 2. Figure out what color it should be 3. Position relative to the
More informationWHOLE NUMBER AND DECIMAL OPERATIONS
WHOLE NUMBER AND DECIMAL OPERATIONS Whole Number Place Value : 5,854,902 = Ten thousands thousands millions Hundred thousands Ten thousands Adding & Subtracting Decimals : Line up the decimals vertically.
More informationAbout the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Computer Graphics
r About the Tutorial To display a picture of any size on a computer screen is a difficult process. Computer graphics are used to simplify this process. Various algorithms and techniques are used to generate
More informationRational Numbers: Graphing: The Coordinate Plane
Rational Numbers: Graphing: The Coordinate Plane A special kind of plane used in mathematics is the coordinate plane, sometimes called the Cartesian plane after its inventor, René Descartes. It is one
More informationUNIVERSITY OF CALIFORNIA, SANTA CRUZ BOARD OF STUDIES IN COMPUTER ENGINEERING
UNIVERSITY OF CALIFORNIA, SANTA CRUZ BOARD OF STUDIES IN COMPUTER ENGINEERING CMPE13/L: INTRODUCTION TO PROGRAMMING IN C SPRING 2012 Lab 3 Matrix Math Introduction Reading In this lab you will write a
More information