COMPUTER GRAPHICS Prepared by S.MAHALAKSHMI Asst. Prof(Sr) / SCSE VIT University.

Slides:



Advertisements
Similar presentations
In InDesign, you can create a new file by pressing Command/Control-N.
Advertisements

30/9/2008Lecture 21 Computer Graphics Assistant Professor Dr. Sana’a Wafa Al-Sayegh 2 nd Semester ITGD3107 University of Palestine.
Graphics You draw on a Graphics object The Graphics object cannot directly be created by your code, instead one is generated when the method paintComponent.
CHAPTER 3 2D GRAPHICS ALGORITHMS
Computer Graphics Tz-Huan Huang National Taiwan University (Slides are based on Prof. Chen’s)
The GIMP Simple features tutorial By Mary A White.
Chapter 3 Drawing and Composing an Illustration. Objectives Draw straight lines Draw curved lines Draw elements of an illustration Apply attributes to.
Computer Graphics Viewing.
© 2001 By Default! A Free sample background from Slide 1 Attributes of Output Primitives Definition Parameter that affects.
CMPE 466 COMPUTER GRAPHICS Chapter 5 Attributes of Graphics Primitives Instructor: D. Arifler Material based on - Computer Graphics with OpenGL ®, Fourth.
Output Primitives Computer Graphics.
Lecture 2Slide 1 Event Driven Computing Basic Interaction Handling –Interactive programs - must pay attention to the user interface.
1 Model View Controller. 2 Outline Review Definitions of MVC Why do we need it? Administiriva Changing the display Event flow Dragging at interactive.
1 King ABDUL AZIZ University Faculty Of Computing and Information Technology CS 454 Computer graphicsIntroduction Dr. Eng. Farag Elnagahy
Vector vs. Bitmap SciVis V
V Obtained from a summer workshop in Guildford County July, 2014
By: Zaiba Mustafa Copyright ©
1. 2  A computer is a device capable of storing data  in a format suited to the computer,  which is then processed by mathematical manipulation and.
Programming in SRGP.
XP Tutorial 7 New Perspectives on Microsoft Windows XP 1 Microsoft Windows XP Working with Graphics Tutorial 7.
CGMB 314 Intro to Computer Graphics Fill Area Primitives.
1/24/20061 Fill-Area Algorithms and Functions. 1/24/20062 Learning Objectives OpenGL state variables Color and gray scale Color functions Point attributes.
Chapter 5 Review: Plotting Introduction to MATLAB 7 Engineering 161.
CGMB214: Introduction to Computer Graphics
Dr. S.M. Malaek Assistant: M. Younesi
Jehee Lee Seoul National University
Tools for Raster Displays CVGLab Goals of the Chapter To describe pixmaps and useful operations on them. To develop tools for copying, scaling, and rotating.
Java Software Solutions Lewis and Loftus Chapter 7 1 Copyright 1997 by John Lewis and William Loftus. All rights reserved. Graphics -- Introduction The.
CGMB214: Introduction to Computer Graphics
Vector vs. Bitmap
1-1 OBJ Copyright 2003, Paradigm Publishing Inc. Dr. Joseph Otto Silvia Castaneda Christopher deCastro CSULA Macromedia Flash MX Introduction.
1 Input and Interaction. 2 Input Devices Physical input devices Keyboard devices and pointing devices Logical input devices.
Designing a Web Page with Tables. A text table: contains only text, evenly spaced on the Web page in rows and columns uses only standard word processing.
Addison Wesley is an imprint of © 2010 Pearson Addison-Wesley. All rights reserved. Chapter 7 The Game Loop and Animation Starting Out with Games & Graphics.
1 Introduction Line attribute Color and gray scale Area filled attribute Anti-aliasing.
Chapter2: Drawing a Window. Drawing with the GDI.
Ch 2 Graphics Programming page 1 CSC 367 Coordinate Systems (2.1.2) Device coordinates, or screen coordinates (pixels) put limitations on programmers and.
1 Graphics CSCI 343, Fall 2015 Lecture 4 More on WebGL.
Chapter 6 Working with Patterns and Brushes. Objectives Use the Move command Create a pattern Design a repeating pattern Use the Pattern Options panel.
CGMB214: Introduction to Computer Graphics
INT 840E Computer graphics Introduction & Graphic’s Architecture.
Programming for Artists ART 315 Dr. J. R. Parker Art/Digital Media Lab Lec 10 Fall 2010.
2D Output Primitives Points Lines Circles Ellipses Other curves Filling areas Text Patterns Polymarkers.
Computer Graphics Chapter 6 Andreas Savva. 2 Interactive Graphics Graphics provides one of the most natural means of communicating with a computer. Interactive.
Graphic Basics in C ATS 315. The Graphics Window Will look something like this.
Introduction to Processing. 2 What is processing? A simple programming environment that was created to make it easier to develop visually oriented applications.
Chapter 11: Block References and Attributes. After completing this Chapter, you will be able to use the following features: Create and insert block references.
Tkinter Canvas.
Digital Media Dr. Jim Rowan ITEC So far… We have compared bitmapped graphics and vector graphics We have discussed bitmapped images, some file formats.
© 2011 Delmar, Cengage Learning Chapter 6 Working with Patterns and Brushes.
Programming in the Simple Raster Graphics Package (SRGP) Chapter 2.
Computer Graphics: Programming, Problem Solving, and Visual Communication Steve Cunningham California State University Stanislaus and Grinnell College.
Fall UI Design and Implementation1 Lecture 6: Output.
2D Output Primitives Points Lines Circles Ellipses Other curves Filling areas Text Patterns Polymarkers.
Paint Tutorial Created February 2006 Start Paint: Start>Programs>Accessories>Paint.
Adobe Photoshop T.Ahlam Algharasi. Adobe Photoshop Adobe Photoshop is a seriously powerful photo and image edit ( treating and manipulation, compositing,
Graphics and Image Data Representations 1. Q1 How images are represented in a computer system? 2.
Guilford County SciVis V104.03
Lecture 2: 19/4/1435 Graphical algorithms Lecturer/ Kawther Abas CS- 375 Graphics and Human Computer Interaction.
Graphics Programming. Graphics Functions We can think of the graphics system as a black box whose inputs are function calls from an application program;
Computer Graphics CC416 Lecture 04: Bresenham Line Algorithm & Mid-point circle algorithm Dr. Manal Helal – Fall 2014.
ATTRIBUTE OF OUTPUT PRIMITIVES. Attribute of Output Primitives 30/9/2008 A.Aruna/Assistant professor/IT/SNSCE 2 Definition Line Attribute Curve Attribute.
Chapter 7 Vector Editing © 2013 Cengage Learning. All Rights Reserved. May not be scanned, copied or duplicated, or posted to a publicly accessible website,
Desktop Publishing Lesson 4 — Working with Objects.
3. Drawing Let’s Learn Saengthong School, June – August 2016 Teacher: Aj. Andrew Davison, CoE, PSU Hat Yai Campus
Introduction To GDI GDI Definition : It is a interface present in windows which provide function and related structures that an application can use to.
Lecture 9 From Vertices to Fragments. Objectives Introduce basic implementation strategies Clipping Rasterization hidden-surface removal.
Vector vs. Bitmap.
Lesson One: The Beginning Chapter 1: Pixels Learning Processing Daniel Shiffman Presentation by Donald W. Smith Graphics from
Otasuke GP-EX! Chapter 1 Menu Screen.
Presentation transcript:

COMPUTER GRAPHICS Prepared by S.MAHALAKSHMI Asst. Prof(Sr) / SCSE VIT University

Programming in SRGP

INTRO Advantages of Raster Displays Advantages of Raster Displays Fill areas with uniform color or repeated pattern with 2 or more colors. Fill areas with uniform color or repeated pattern with 2 or more colors. Stores images which allows fine level : individual pixels can be read or written and arbitrary portions can be copied or moved. Stores images which allows fine level : individual pixels can be read or written and arbitrary portions can be copied or moved.

SRGP(Simple Raster Graphics Package) Device independent Graphics package Device independent Graphics package Similar to Macintosh QuickDraw Raster package and Xlib package of Windows system Similar to Macintosh QuickDraw Raster package and Xlib package of Windows system

SRGP (Continued..) Drawing with SRGP Drawing with SRGP Basic Interaction Handling Basic Interaction Handling Raster Graphics Features Raster Graphics Features Limitations of SRGP Limitations of SRGP

1.Drawing with SRGP  1.1 Specification of Graphics Primitives  1.2 Attributes  1.3 Filled primitives and attributes  1.4 Saving and Restoring Attributes  1.5Text

1.1 Specification of Graphics Primitives Drawing in integer graphics package such as SRGP is like plotting graphs on graph paper with very fine grid Drawing in integer graphics package such as SRGP is like plotting graphs on graph paper with very fine grid Grid varies from points per inch to 300 or more on high resolution displays Grid varies from points per inch to 300 or more on high resolution displays (0,0)--> bottom left of the screen. +ve x increases towards right and +ve Y increases towards top (0,0)--> bottom left of the screen. +ve x increases towards right and +ve Y increases towards top

1.1 continued... SRGP supports basic collections of primitives SRGP supports basic collections of primitives a) Lines b) Polygons c) Circles d) Ellipses e) Text

Lines and Poly lines Void SRGP_lineCoord(int x1, int y1, int x2, int y2); Void SRGP_lineCoord(int x1, int y1, int x2, int y2); eg: eg: SRGP_lineCoord(0,0,100,300) SRGP_lineCoord(0,0,100,300) (or) (or) void SRGP_line(point pt1,point pt2); void SRGP_line(point pt1,point pt2); Point is a defined type, a record holding 2 integer x,y values Point is a defined type, a record holding 2 integer x,y values typedef struct typedef struct {int x,y; {int x,y; }point; }point;

Lines and Poly lines A sequence of lines connecting successive vertices is called polyline. A sequence of lines connecting successive vertices is called polyline. There are 2 polyline procedures. These take array as parameter. There are 2 polyline procedures. These take array as parameter. Void SRGP_polyLineCoord (int vertexcount, Void SRGP_polyLineCoord (int vertexcount, int*xArray, int*yArray); int*xArray, int*yArray); Void SRGP_polyLine(int vertexcount, point Void SRGP_polyLine(int vertexcount, point *vertices); *vertices);

continued.. /* plot the axes*/ /* plot the axes*/ SRGP_lineCoord(175,200,320,200); SRGP_lineCoord(175,200,320,200); SRGP_lineCoord(200,140,200,280); SRGP_lineCoord(200,140,200,280); /*plot the data*/ /*plot the data*/ SRGP_polyLineCoord (12,months, balanceOfTrade); SRGP_polyLineCoord (12,months, balanceOfTrade); SRGP_polyLine(7, bowtieArray); SRGP_polyLine(7, bowtieArray);

contiued.. Markers and polymarkers Markers and polymarkers It is convenient to place markers(dots,asterisks or circles) at the data points on graphs. It is convenient to place markers(dots,asterisks or circles) at the data points on graphs. Void SRGP_markerCoord(intx,inty); Void SRGP_markerCoord(intx,inty); Void SRGP_marker(point pt) Void SRGP_marker(point pt) Void SRGP_polyMarkerCoord (int vertexcount, int*xArray, int*yArray); Void SRGP_polyMarkerCoord (int vertexcount, int*xArray, int*yArray); Void SRGP_polyMarker(int vertexcount, point *vertices); Void SRGP_polyMarker(int vertexcount, point *vertices);

continued... Polygons and Rectangles Polygons and Rectangles --> To draw an outline polygon, we can either specify a polyline on itself by making the first and last vertices identical (or) we can use --> To draw an outline polygon, we can either specify a polyline on itself by making the first and last vertices identical (or) we can use void SRGP_polygon(int vertexCount, point *vertices) void SRGP_polygon(int vertexCount, point *vertices) Now bowtieArray is of only 6 points it automatically closes the figure. Now bowtieArray is of only 6 points it automatically closes the figure.

Continued Any rectangle can be specified as a polygon having 4 vertices. Any rectangle can be specified as a polygon having 4 vertices. Uses only 2 primitives(lower left & upper right) Uses only 2 primitives(lower left & upper right) Void SRGP_rectangleCoord(int leftx, intbottomY,int rightX, int topY); Void SRGP_rectangleCoord(int leftx, intbottomY,int rightX, int topY); Void SRGP_rectanglePt(point bottomLeft, point topRight); Void SRGP_rectanglePt(point bottomLeft, point topRight); void SRGP_rectangle(rectangle rect); void SRGP_rectangle(rectangle rect); typedef struct{ point bottomLeft,topRight; typedef struct{ point bottomLeft,topRight; }rectangle; }rectangle;

Rectangles continued.. Point SRGP_defPoint(intx,int y); Point SRGP_defPoint(intx,int y); Rectangle SRGP_defRectangle(int leftX,int bottomY,int rightX, int topY); Rectangle SRGP_defRectangle(int leftX,int bottomY,int rightX, int topY);

Circles and Ellipses Circles are Special types of ellipses. Circles are Special types of ellipses. The term ellipse arc used for circular,elliptical,closed or partial arcs. The term ellipse arc used for circular,elliptical,closed or partial arcs. It is easy to specify arcs via upright rectangles (bounding boxes or extents) It is easy to specify arcs via upright rectangles (bounding boxes or extents) Void SRGP_ellipseArc(rectangle extentRect, float startAngle, float endAngle); Void SRGP_ellipseArc(rectangle extentRect, float startAngle, float endAngle);

Circles and ellipses  Relationship between rectangular and circular angle is  Rectangular angle=arctan(tan(circularangle).width/height)+  adjust  where the angles are in radians and  adjust = 0, for 0<= circular angle<∏/2  adjust = ∏/2, for ∏/2 <=circular angle < 3∏/2  adjust = 2∏, for 3∏/2<= circular angle < 2∏

1.2 Attributes The specification of a primitive can be controlled by specification of its attributes The specification of a primitive can be controlled by specification of its attributes Line style and Line width Line style and Line width Color Color Penstyle Penstyle Attributes are global state variables that retain their values until they are changed explicitly Attributes are global state variables that retain their values until they are changed explicitly  Void SRGP_setLineStyle(lineStyle CONTINUOUS / DASHED /DOTTED/….);  Void SRGP_setLineWidth(int widthValue);

Attributes.. Each attribute has a default.. Eg., default for linestyle is CONTINUOUS that for line width is 1. Each attribute has a default.. Eg., default for linestyle is CONTINUOUS that for line width is 1. Line style can be represented as bit mask and it is scan converted by SRGP. Line style can be represented as bit mask and it is scan converted by SRGP. For eg.. Contimuous all 1’s For eg.. Contimuous all 1’s DASHED ….. DASHED …..

Attributes for marker primitive  Void SRGP_setMarkerSize(int sizeValue);  Void SRGP_setMarkerStyle(markerStyle MARKER_CIRCLE / MARKER_SQUARE/…);  The default is circle style  COLOR  bilevel system the color value is 0 and 1.  -1 black, 0 white for black on white devices  1 green, 0 black for green on black devices

Attribute-color The integer color attribute is an index to SRGP;s color table. Each entry defines color or gray scale value. The integer color attribute is an index to SRGP;s color table. Each entry defines color or gray scale value. There are 2d entries and d is the depth of frame buffer There are 2d entries and d is the depth of frame buffer 2 methods to specify colors 2 methods to specify colors 1. use integers 0 and 1 directly 1. use integers 0 and 1 directly 2. use color names supported by SRGP 2. use color names supported by SRGP We can also select color by calling We can also select color by calling Void SRGP_setColor(int colorIndex) Void SRGP_setColor(int colorIndex)

1.3 Filled Primitives and Their Attributes  Primitives can be drawn in 2 ways  Outline  Filled  SRGP’s filled versions of area defining primitives draw the interior pixels with no outline

Code for creating filled Primitives

Output for the previous code

Odd Parity rule  We need a rule for specifying which regions are interior, and thus should be filled and which is exterior  This can done in SRGP through odd parity rule.  To check whether the region lies inside/ outside 1. Choose a test point 2. Choose a ray that starts at the test point extends indefinitely in any direction and does not pass any vertices. 3. If this ray intersect the polygon outline an odd no of times ->interior 4. else exterior

Fill style and fill pattern for areas  4 ways  Void SRGP_setFillStyle(drawStyle SOLID/ BITMAP_PATTERN_OPAQUE / BITMAP_PATTERN_TRANSPARENT/ PIXMAP_PATTERN);  There is no distinction in opaque & transparent in pix map patterns

Application screen background  Background color  0 bits in bitmap patterns used in opaque mode.  Suppose user expects the uniform screen background pattern then the application should set up the background in desired pattern. Default  solid color 0  Erase primitive  is done by redraw them in the application background pattern.(Quick & dirty technique). This yield damaged image if primitives overlaps.  Damage repair is done by respecifying primitives in application data

1.4 Saving and restoring Attributes  Attributes can be saved for later restoration.  It does not affect the global attribute state.  SRGP does this attribute group via  void SRGP_inquireAttributes(attributeGroup * group);  void SRGP_setAttributes(attributeGroup * group);

1.5 Text  Specifying and implementing text drawing is always complex in graphics package. (style,font,bold,italic,width,spacing)  In SRGP text is horizontally aligned and character widths vary, but space b/w characters is constant.  High quality documents need specialized packages that offer more ctrl.  Eg. Post script  Text in SRGP is generated by  void SRGP_text(point origin, char *text);

1.5 Text continued..  The location of text is ctrlled by specification of its origin/Anchor point  Text primitive’s appearance is determined by only 2 attributes (color and font)  void SRGP_setFont(int valueIndex)  Each character in the font is defined as rectangular bitmap.  SRGP draws a character by filling a rectangle using character bitmap as pattern in transparent mode.

Formatting text  Void SRGP_inquireTextExtent(Char*text, int *width, int * height, int *descent);

Code for formatting text

2.Basic Interaction Handling  Topics to be discussed  Human Factors  Logical Input Devices  Sampling versus Event driven Processing  Sample mode  Event mode  Pick correlation for Interaction Handling  Setting Device Measure and Attributes

2.1 Human Factors  Interaction style(look and feel)  Ease of learning and use  Guidelines for user computer interaction 1. Provide simple and Consistent interaction sequence 2. Do not overload the user with too many different options 3. Show the available options clearly 4. Give appropriate feedback 5. Allow the user ti recover gracefully from mistakes.

2.2 Logical Input Devices  Device types in SRGP  2 logical input devices supported by SRGP  a) Locator  b) Keyboard SRGP maps the logical devices to physical devices(eg locator to mouse, joystick, tablet….) SRGP maps the logical devices to physical devices(eg locator to mouse, joystick, tablet….) SRGP provides only one logical locator and one keyboard device SRGP provides only one logical locator and one keyboard device

2.3 Sampling versus Event driven Processing