1 / 23

Basic Raster Graphics Algorithms for Drawing 2D Primitives

Basic Raster Graphics Algorithms for Drawing 2D Primitives. Prof. Lizhuang Ma Shanghai Jiao Tong University. Contents. Architecture of a Raster Display Scan Converting Lines Filling Rectangles Filling Polygons Clipping Lines Clipping Polygons Antialiasing.

coral
Download Presentation

Basic Raster Graphics Algorithms for Drawing 2D Primitives

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Basic Raster Graphics Algorithms for Drawing 2D Primitives Prof. Lizhuang Ma Shanghai Jiao Tong University

  2. Contents • Architecture of a Raster Display • Scan Converting Lines • Filling Rectangles • Filling Polygons • Clipping Lines • Clipping Polygons • Antialiasing

  3. Architecture of a Raster Display Video

  4. Definitions • Pixel: a screen consists of N x M pixels • Bilevel = monochrome, 1 bit / pixel • Color: RGB/CYK/LUV… • Bitmap / pixmap • Frame buffer: an array of data in memory mapped to screen

  5. Scan Converting Line • A scan-converted line showing intensified pixels as black circles

  6. The Basic Incremental Algorithm • A scan-converted line showing intensified pixels as black circles

  7. The Basic Incremental Algorithm void Line (intx0, inty0, intx1, inty1, value) { intx; floatdy, dx, y, m; dy=y1-y0; dx=x1-x0; m=dy/dx; y=y0; for(x=x0; x<=x1; x++) { WritePixel(x, (int)floor(y+0.5), value); y+=m; } }

  8. Midpoint Line Algorithm

  9. Midpoint Line Algorithm

  10. Midpoint Line Algorithm void MidpointLine(intx0, inty0, intx1, inty1, value) { int dx, dy, incrE, incrNE, d, x, y; dy=y1-y0;dx=x1-x0;d=dy*2-dx; incrE=dy*2;incrNE=(dy-dx)*2; x=x0;y=y0; WritePixel(x, y, value); while(x<x1) { if(d<=0) {d+=incrE;x++; } else {d+=incrNE;x++;y++; } WritePixel(x, y, value); } }

  11. Filling Rectangles for(y from yminto ymaxof the rectangle) { for(x from xminto xmax) { WritePixel(x, y, value); } }

  12. Filling Polygons

  13. Filling Polygons

  14. Filling Polygons • Find the intersections of the scan line with all edges of the polygon • Sort the intersections by increasing x coordinate • Fill in all pixels between pairs of intersections that lie interior to the polygon

  15. Special Cases Slivers Horizontal Edges

  16. Clipping Lines

  17. The Cohen-Sutherland Algorithm

  18. The Cohen-Sutherland Algorithm

  19. Clipping Polygons

  20. The Sutherland-HodgmanPolygon-Clipping Algorithm

  21. Antialiasing

More Related