Output Primitives

Organized By: Vinay Arora
               Assistant Professor, CSED
               Thapar University, Patiala
Disclaimer

         This is NOT A COPYRIGHT                           MATERIAL
Content has been taken mainly from the following books & websites:

          Computer Graphics C Version By Donald Hearn, M. Pauline Baker
Schaum's outline of theory and problems of computer graphics By Zhigang Xiang, Roy A. Plastock
                Computer Graphics: Principles and Practice By James D. Foley
                         http://en.wikipedia.org/wiki/Computer_graphics
                         http://www.howstuffworks.com/3dgraphics.htm
                         http://www.graphics.cornell.edu/online/tutorial/
                                     http://www.cgarena.com/
                                               etc…




                                         Vinay Arora
                                            CSED
Object Model




               Vinay Arora
                  CSED
Primitives
   2-D Drawing or a 3-D Object consist of Graphical Primitives such as
   Points, Lines, Circles & Filled Polygons.

   Graphics System or the Application Program convert each primitive
   from its geometric definition into a set of Pixels that make up the
   primitive in the Image Space.

   This Conversion is referred to as SCAN CONVERSION or
   RASTERIZATION.




                                 Vinay Arora
                                    CSED
Definitions
   RASTERIZATION: Process of determining which pixels provide the best
   approximation to a desired line on the screen.

   SCAN CONVERSION: Combination of rasterization and generating the
   picture in scan line order.




                               Vinay Arora
                                  CSED
General Requirement

   Straight lines must appear as straight lines.



   They must start and end accurately.



   Lines should have constant brightness along their length.



   Lines should drawn rapidly.


                                   Vinay Arora
                                      CSED
Straight lines must appear as Straight
                Lines




                  Vinay Arora
                     CSED
For horizontal, vertical and 45º lines, the choice of raster elements is
obvious. This lines exhibit constant brightness along the length:




                                Vinay Arora
                                   CSED
For any other orientation the choice is more difficult:




                               Vinay Arora
                                  CSED
Intersection Points
   In general Line doesn’t pass through Intersection Points.


   Points are very close & dense that’s why – it appears as Straight Line.


   We have to find Addressable Pixels.


   Points Distributed over the line & the most closest to the line.


   No Addressable Pixel is having any Floating Point number/value.


                                   Vinay Arora
                                      CSED
Jaggies




          Vinay Arora
             CSED
Staircase Effect




                   Vinay Arora
                      CSED
Staircase Effect




                   Vinay Arora
                      CSED
Direct Scan Conversion




                Vinay Arora
                   CSED
DDA – Digital Differential Analyzer




                 Vinay Arora
                    CSED
DDA – Pseudo code




               Vinay Arora
                  CSED
Section of Display Screen in case of Positive
                 Slope Line




                      Vinay Arora
                         CSED
Section of Display Screen in case of
        Negative Slope Line




                 Vinay Arora
                    CSED
Screen Grid showing a Pixel in column xk on scan line yk that is to be
        plotted along the path of line with slope 0 < m <1




                                  Vinay Arora
                                     CSED
Distance between pixel positions & the line y
    coordinate at sampling position xk+1




                      Vinay Arora
                         CSED
Bresenham’s Algorithm
 They coordinate on mathematical line at pixel column position xk+l is calculated as




                                       Vinay Arora
                                          CSED
Bresenham’s Algorithm (Conti…)




  where term yk+1 - yk is either 0 or 1, depending on the sign of parameter pk.




                                      Vinay Arora
                                         CSED
Algorithm




            Vinay Arora
               CSED
Line Drawing




               Vinay Arora
                  CSED
Example




          Vinay Arora
             CSED
Solution




           Vinay Arora
              CSED
Representation of Circle




                 Vinay Arora
                    CSED
Representation of Circle




                 Vinay Arora
                    CSED
Mid Point Representation




                Vinay Arora
                   CSED
Mid Point Representation




                Vinay Arora
                   CSED
Mid Point Circle Algo. – Basic Steps




                   Vinay Arora
                      CSED
Mid Point Circle Algo. – Basic Steps




                   Vinay Arora
                      CSED
Mid Point Circle Algo. – Basic Steps




                   Vinay Arora
                      CSED
Mid Point Circle Algorithm




                 Vinay Arora
                    CSED
Mid Point Circle Algorithm (Contd)




                 Vinay Arora
                    CSED
Example




          Vinay Arora
             CSED
Ellipse




          Vinay Arora
             CSED
Ellipse (Contd.)




                   Vinay Arora
                      CSED
General Equation




                   Vinay Arora
                      CSED
Scan Converting an Ellipse




                 Vinay Arora
                    CSED
Equation for Ellipse




                 Vinay Arora
                    CSED
Equation for Ellipse – For Region 1




                 Vinay Arora
                    CSED
Scan Line for Polygon Filling




                 Vinay Arora
                    CSED
Scan Line for Polygon Filling




                 Vinay Arora
                    CSED
Selecting Vertex




                   Vinay Arora
                      CSED
Formula for Next Value for x




                 Vinay Arora
                    CSED
Saving Intersection Points




                 Vinay Arora
                    CSED
Color Boundaries for Boundary Fill
           Procedure




                Vinay Arora
                   CSED
4-Connected & 8-Connected




               Vinay Arora
                  CSED
Boundary Fill Algorithm




                Vinay Arora
                   CSED
Partially Filled in 4 - Connected




                  Vinay Arora
                     CSED
Boundary Fill across Pixel spans for a
        4 – connected area




                  Vinay Arora
                     CSED
Boundary Fill across Pixel spans for a
        4 – connected area




                  Vinay Arora
                     CSED
Flood Fill




             Vinay Arora
                CSED
Flood Fill Algorithm




                 Vinay Arora
                    CSED
Thnx…



  Vinay Arora
     CSED

CG - Output Primitives