SlideShare uma empresa Scribd logo
1 de 44
Baixar para ler offline
Computer Graphics 4:
      Viewing In 2D




                Sudipta Mondal
2
of
30
                                            Contents
     Windowing Concepts
     Clipping
       – Introduction
       – Brute Force
       – Cohen-Sutherland Clipping Algorithm
     Area Clipping
       – Sutherland-Hodgman Area Clipping
         Algorithm
3
of
30
                                            Windowing I
     A scene is made up of a collection of objects
     specified in world coordinates




                        World Coordinates
4
of
30
                                               Windowing II
     When we display a scene only those objects
     within a particular window are displayed
                                Window
      wymax




      wymin




                   wxmin                       wxmax
                           World Coordinates
5
of
30
                                                Windowing III
     Because drawing things to a display takes
     time we clip everything outside the window
                                 Window
      wymax




      wymin




                    wxmin                       wxmax
                            World Coordinates
6
of
30
                                            Clipping
     Avoid Drawing Parts of Primitives Outside Window
        – Window defines part of scene being viewed
        – Must draw geometric primitives only inside
          window




                                             World
                                             Coordinates
7
of
30
                    Viewport Transformation
     Transform 2D Geometric Primitives from
       Screen Coordinate System (Projection
       Coordinates) to Image Coordinate
       System (Device Coordinates)
           Screen                 Image




                                    Viewport
8
of
30
                           Window vs. Viewport
     Window
       – World-coordinate area selected for display
       – What is to be viewed
     Viewport
       – Area on the display device to which a window
         is mapped
       – Where it is to be displayed
9
of
30
                        Viewport Transformation
     Window-to-Viewport Mapping
               Window                     Viewport
      wy2                        vy2


            (wx, wy)                     (vx, vy)
      wy1                        vy1
        wx1               wx2      vx1               vx2
          Screen Coordinates         Image Coordinates

      vx = vx1 + (wx – wx1) * (vx2 – vx1) / (wx2 – wx1);
      vy = vy1 + (wy – wy1) * (vy2 – vy1) / (wy2 – wy1);
10
of
30
11
of
30
                                                                      Clipping
     For the image below consider which lines
     and points should be kept and which ones
     should be clipped
                                 P4


                                          Window                 P2
           wymax
                                             P6
                   P3
                                                    P1
                        P7           P5

                                     P9
                                                                 P8
           wymin
                                              P10


                             wxmin                       wxmax
12
of
30
                                                                    Point Clipping
     Easy - a point (x,y) is not clipped if:
          wxmin ≤ x ≤ wxmax AND wymin ≤ y ≤ wymax
     otherwise it is clipped
                                             P4 Clipped
                                                                Clipped

                                            Window                  P2
             wymax
                     Clipped
                                       P5
                                                       P1
                       P7         Points Within the Window
                                       are Not Clipped
                                            P9                      P8
             wymin
                                       Clipped   P10


                               wxmin                        wxmax
13
of
30
                                           Line Clipping
     Harder - examine the end-points of each line
     to see if they are in the window or not
      Situation              Solution      Example

      Both end-points inside
                             Don’t clip
      the window

      One end-point inside
      the window, one        Must clip
      outside

      Both end-points
                             Don’t know!
      outside the window
14
of
30
                      Brute Force Line Clipping
     Brute force line clipping can be performed as
     follows:
        – Don’t clip lines with both
          end-points within the
          window
        – For lines with one end-
          point inside the window
          and one end-point
          outside, calculate the
          intersection point (using the equation of the
          line) and clip from this point out
15
of
30
         Brute Force Line Clipping (cont…)
       – For lines with both end-
         points outside the
         window test the line for
         intersection with all of
         the window boundaries,
         and clip appropriately

     However, calculating line intersections is
     computationally expensive
     Because a scene can contain so many lines,
     the brute force approach to clipping is much
     too slow
16
of
30
          Cohen-Sutherland Clipping Algorithm

     An efficient line clipping
     algorithm
     The key advantage of the
     algorithm is that it vastly
     reduces the number of line
     intersections that must be                 Dr. Ivan E. Sutherland
                                                co-developed the Cohen-
     calculated                                 Sutherland clipping
                                                algorithm. Sutherland is
                                                a graphics giant and
                                                includes amongs t his
        Cohen is something of a mystery – can   achievements the
        anybody find out who he was?            invention of the head
                                                m o u n t e d d i s p l a y.
17
of
30
             Cohen-Sutherland: World Division
     World space is divided into regions based
     on the window boundaries
        – Each region has a unique four bit region code
        – Region codes indicate the position of the
          regions with respect to the window

                                  1001   1000     1010
         3     2     1       0
                                         0000
       above below right   left   0001            0010
                                         Window
        Region Code Legend

                                  0101   0100     0110
18
of
30
                    Cohen-Sutherland: Labelling
     Every end-point is labelled with the
     appropriate region code
                                                             P11 [1010]
                                    P4 [1000]

                                      Window
            wymax
                                             P6 [0000]
                     P3 [0001]
                                 P5 [0000]                           P12 [0010]
                     P7 [0001]
                                    P9 [0000]                    P8 [0010]
            wymin
                                                P10 [0100]
                    P13 [0101]                                   P14 [0110]

                            wxmin                        wxmax
19
of
30
      Cohen-Sutherland: Lines In The Window

     Lines completely contained within the
     window boundaries have region code [0000]
     for both end-points so are not clipped
                                                            P11 [1010]
                                   P4 [1000]

                                     Window
           wymax
                                            P6 [0000]
                    P3 [0001]
                                P5 [0000]                           P12 [0010]
                    P7 [0001]
                                   P9 [0000]                    P8 [0010]
           wymin
                                               P10 [0100]
                   P13 [0101]                                   P14 [0110]

                           wxmin                        wxmax
20
of
         Cohen-Sutherland: Lines Outside The
30                                   Window
     Any lines with a common set bit in the region
     codes of both end-points can be clipped
        – The AND operation can efficiently check this
                                                             P11 [1010]
                                    P4 [1000]

                                      Window
            wymax
                                             P6 [0000]
                     P3 [0001]
                                 P5 [0000]                           P12 [0010]
                     P7 [0001]
                                    P9 [0000]                    P8 [0010]
            wymin
                                                P10 [0100]
                    P13 [0101]                                   P14 [0110]

                            wxmin                        wxmax
21
of
30
              Cohen-Sutherland: Other Lines
     Lines that cannot be identified as completely
     inside or outside the window may or may not
     cross the window interior
     These lines are processed as follows:
        – Compare an end-point outside the window to a
          boundary (choose any order in which to
          consider boundaries e.g. left, right, bottom, top)
          and determine how much can be discarded
        – If the remainder of the line is entirely inside or
          outside the window, retain it or clip it
          respectively
22
of
30
       Cohen-Sutherland: Other Lines (cont…)
       – Otherwise, compare the remainder of the line
         against the other window boundaries
       – Continue until the line is either discarded or a
         segment inside the window is found
     We can use the region codes to determine
     which window boundaries should be
     considered for intersection
       – To check if a line crosses a particular
         boundary we compare the appropriate bits in
         the region codes of its end-points
       – If one of these is a 1 and the other is a 0 then
         the line crosses the boundary
23
of
30
                   Cohen-Sutherland Examples
     Consider the line P9 to P10 below
        – Start at P10                             Window
                                      wymax
        – From the region codes
          of the two end-points we
          know the line doesn’t                   P [0000]
                                                    9
                                      wymin
          cross the left or right                  P ’ [0000]
                                                        10


          boundary                                     P [0100]
                                                             10


                                            wxmin             wxmax
        – Calculate the
          intersection of the line with the bottom boundary
          to generate point P10’
        – The line P9 to P10’ is completely inside the
          window so is retained
24
of
30
          Cohen-Sutherland Examples (cont…)

     Consider the line P3 to P4 below
        – Start at P4                     P ’ [1000]
                                                        P [1000]
                                                        4
                                              4
                                                          Window
        – From the region codes     wymax

          of the two end-points           P [0001]
                                              3


          we know the line
          crosses the left          wymin
          boundary so calculate
          the intersection point to
          generate P4’                            wxmin            wxmax

        – The line P3 to P4’ is completely outside the
          window so is clipped
25
of
30
          Cohen-Sutherland Examples (cont…)

     Consider the line P7 to P8 below
        – Start at P7
                                                            Window
        – From the two region     wymax
          codes of the two
          end-points we know              P7 [0001]
                                                      P7’ [0000]
                                                                                P8 [0010]
          the line crosses the                                     P8’ [0000]
                                  wymin
          left boundary so
          calculate the
          intersection point to                  wxmin                    wxmax
          generate P7’
26
of
30
          Cohen-Sutherland Examples (cont…)

     Consider the line P7’ to P8
        – Start at P8
                                                            Window
        – Calculate the           wymax
          intersection with the
          right boundary to               P7 [0001]
                                                      P7’ [0000]
                                                                                P8 [0010]
          generate P8’                                             P8’ [0000]
                                  wymin
        – P7’ to P8’ is inside
          the window so is
          retained                               wxmin                    wxmax
27
of
30
     Cohen-Sutherland Worked Example


                      Window
      wymax




      wymin




              wxmin            wxmax
28
of
30
                Calculating Line Intersections
     Intersection points with the window
     boundaries are calculated using the line-
     equation parameters
        – Consider a line with the end-points (x1, y1)
          and (x2, y2)
        – The y-coordinate of an intersection with a
          vertical window boundary can be calculated
          using:
                       y = y1 + m (xboundary - x1)
          where xboundary can be set to either wxmin or
          wxmax
29
of
30
      Calculating Line Intersections (cont…)

     – The x-coordinate of an intersection with a
       horizontal window boundary can be
       calculated using:
                    x = x1 + (yboundary - y1) / m
       where yboundary can be set to either wymin or
       wymax
     – m is the slope of the line in question and can
       be calculated as m = (y2 - y1) / (x2 - x1)
30
of
30
               Area Clipping

     Similarly to lines, areas
     must be clipped to a
     window boundary
     Consideration must be
     taken as to which
     portions of the area must
     be clipped
31
of
                 Sutherland-Hodgman Area Clipping
30                                     Algorithm
                                                   Sutherland
     A technique for clipping areas                turns up
     developed by Sutherland &                     again. This
                                                   time with
     Hodgman                                       Gary Hodgman with
                                                   whom he worked at
     Put simply the polygon is clipped             the first ever
     by comparing it against each                  graphics company
                                                   Evans & Sutherland
     boundary in turn




 Original Area     Clip Left   Clip Right   Clip Top      Clip Bottom
32
of
            Sutherland-Hodgman Area Clipping
30                         Algorithm (cont…)
     To clip an area against an individual boundary:
        – Consider each vertex in turn against the
          boundary.

        – Vertices inside the boundary are saved for
          clipping against the next boundary.

        – Vertices outside the boundary are clipped.
33
of
             Sutherland-Hodgman Area Clipping
30                          Algorithm (cont…)
     To clip an area against an individual boundary:

        – If we proceed from a point inside the boundary
          to one outside, the intersection of the line with
          the boundary is saved.

        – If we cross from the outside to the inside
          intersection point and the vertex are saved.
34
of
30
             Sutherland-Hodgman Example
     Each example                       S
     shows the point
     being processed (P)                    P
                                                      I
                                                                 S

     and the previous                            P
     point (S)                  Save Point P         Save Point I

     Saved points define   P                     S
     area clipped to the                              I      P

     boundary in
     question
                           S
                               No Points Saved   Save Points I & P
35
of
30
                 Other Area Clipping Concerns
     Clipping concave areas can be a little more
     tricky as often superfluous lines must be
     removed




        Window     Window      Window           Window

     Clipping curves requires more work
        – For circles we must find the two intersection
          points on the window boundary
36
of
30
       Weiler-Atherton Polygon Clipping
     – Here, the vertex-processing procedures for
       window boundaries are modified so that
       concave polygons are displayed correctly.

     – The basic idea in    this algorithm is that
       instead of always   proceeding around the
       polygon edges as    vertices are processed,
       we sometimes want     to follow the window
       boundaries.
37
of
30
        Weiler-Atherton Polygon Clipping
     – Which path we follow depends on the
       polygon-processing direction (clockwise or
       counterclockwise).

     – Whether the pair of polygon vertices
       currently being processed represents an
       outside-to-inside pair or an inside-to-outside
       pair.
38
of
30
          Weiler-Atherton Polygon Clipping
     For clockwise processing of polygon
     vertices, we use the following rules:

       –For an outside-to-inside pair of vertices,
       follow the polygon boundary.

       –For an inside-to-outside pair of vertices,
       follow the window boundary in a clockwise
       direction.
39
of
30
     Weiler-Atherton Polygon Clipping
40
of
30
                                      Summary
     Objects within a scene must be clipped to
     display the scene in a window
     Because there can be so many objects
     clipping must be extremely efficient
     The Cohen-Sutherland algorithm can be
     used for line clipping
     The Sutherland-Hodgman algorithm can be
     used for area clipping
41
of
30
42
of
30
        Cohen-Sutherland Clipping Algorithm VI

     Let’s consider the lines remaining below



                                                             P11 [1010]
                                    P4 [1000]

                                      Window
            wymax
                                             P6 [0000]
                     P3 [0001]
                                 P5 [0000]                           P12 [0010]
                     P7 [0001]
                                    P9 [0000]                    P8 [0010]
            wymin
                                                P10 [0100]
                    P13 [0101]                                   P14 [0110]

                            wxmin                        wxmax
43
of
30
          Cohen-Sutherland Clipping Algorithm

     Easy - a point (x,y) is not clipped if:
          wxmin ≤ x ≤ wxmax AND wymin ≤ y ≤ wymax
     otherwise it is clipped
                                             P4 Clipped
                                                                   Clipped

                                           Window                      P2
            wymax
                    Clipped
                                      P5
                                                          P1
                      P7                 Points Within the
                                      Window are Not Clipped
                                            P9
                                                                       P8
            wymin
                                       Clipped     P10


                              wxmin                            wxmax
44
of
30
                                                                         Clipping
     Point clipping is easy:
        – For point (x,y) the point is not clipped if
                wxmin ≤ x ≤Pwxmax AND wymin ≤ y ≤ wymax
                                        4



                                             Window                 P2
              wymax
                                                P6
                      P3
                                                       P1
                           P7           P5

                                        P9
                                                                    P8
              wymin
                                                 P10


                                wxmin                       wxmax
                                  Before Clipping

Mais conteúdo relacionado

Mais procurados

Computer Graphic - Clipping
Computer Graphic - ClippingComputer Graphic - Clipping
Computer Graphic - Clipping2013901097
 
Cohen-Sutherland Line Clipping Algorithm
Cohen-Sutherland Line Clipping AlgorithmCohen-Sutherland Line Clipping Algorithm
Cohen-Sutherland Line Clipping AlgorithmMaruf Abdullah (Rion)
 
Clipping in Computer Graphics
Clipping in Computer Graphics Clipping in Computer Graphics
Clipping in Computer Graphics Barani Tharan
 
Cohen-sutherland & liang-basky line clipping algorithm
Cohen-sutherland & liang-basky line clipping algorithmCohen-sutherland & liang-basky line clipping algorithm
Cohen-sutherland & liang-basky line clipping algorithmShilpa Hait
 
Sutherlands Cohen and Hodgeman algorithms
Sutherlands Cohen and Hodgeman algorithmsSutherlands Cohen and Hodgeman algorithms
Sutherlands Cohen and Hodgeman algorithmsRohit Jain
 
Circle & curve clipping algorithm
Circle & curve clipping algorithmCircle & curve clipping algorithm
Circle & curve clipping algorithmMohamed El-Serngawy
 
Polygon clipping
Polygon clippingPolygon clipping
Polygon clippingMohd Arif
 
Cohen sutherland line clipping
Cohen sutherland line clippingCohen sutherland line clipping
Cohen sutherland line clippingMani Kanth
 
Windowing and clipping final1
Windowing and clipping final1Windowing and clipping final1
Windowing and clipping final1kparthjadhav
 
Clipping in Computer Graphics
Clipping in Computer GraphicsClipping in Computer Graphics
Clipping in Computer GraphicsLaxman Puri
 
Bhavesh window clipping slidshare
Bhavesh window clipping slidshareBhavesh window clipping slidshare
Bhavesh window clipping slidshareBhavesh Panchal
 
Clipping computer graphics
Clipping  computer graphicsClipping  computer graphics
Clipping computer graphicsShaishavShah8
 
Cohen and Sutherland Algorithm for 7-8 marks
Cohen and Sutherland Algorithm for 7-8 marksCohen and Sutherland Algorithm for 7-8 marks
Cohen and Sutherland Algorithm for 7-8 marksRehan Khan
 

Mais procurados (20)

Computer Graphic - Clipping
Computer Graphic - ClippingComputer Graphic - Clipping
Computer Graphic - Clipping
 
Cohen-Sutherland Line Clipping Algorithm
Cohen-Sutherland Line Clipping AlgorithmCohen-Sutherland Line Clipping Algorithm
Cohen-Sutherland Line Clipping Algorithm
 
Clipping
ClippingClipping
Clipping
 
Clipping in Computer Graphics
Clipping in Computer Graphics Clipping in Computer Graphics
Clipping in Computer Graphics
 
Cohen-sutherland & liang-basky line clipping algorithm
Cohen-sutherland & liang-basky line clipping algorithmCohen-sutherland & liang-basky line clipping algorithm
Cohen-sutherland & liang-basky line clipping algorithm
 
Clipping2
Clipping2Clipping2
Clipping2
 
Clipping
ClippingClipping
Clipping
 
Sutherlands Cohen and Hodgeman algorithms
Sutherlands Cohen and Hodgeman algorithmsSutherlands Cohen and Hodgeman algorithms
Sutherlands Cohen and Hodgeman algorithms
 
Circle & curve clipping algorithm
Circle & curve clipping algorithmCircle & curve clipping algorithm
Circle & curve clipping algorithm
 
06 clipping
06 clipping06 clipping
06 clipping
 
Polygon clipping
Polygon clippingPolygon clipping
Polygon clipping
 
Clipping ( Cohen-Sutherland Algorithm )
Clipping ( Cohen-Sutherland Algorithm )Clipping ( Cohen-Sutherland Algorithm )
Clipping ( Cohen-Sutherland Algorithm )
 
Cohen sutherland line clipping
Cohen sutherland line clippingCohen sutherland line clipping
Cohen sutherland line clipping
 
Line clipping
Line clippingLine clipping
Line clipping
 
Windowing and clipping final1
Windowing and clipping final1Windowing and clipping final1
Windowing and clipping final1
 
Clipping in Computer Graphics
Clipping in Computer GraphicsClipping in Computer Graphics
Clipping in Computer Graphics
 
2D viewing
2D viewing2D viewing
2D viewing
 
Bhavesh window clipping slidshare
Bhavesh window clipping slidshareBhavesh window clipping slidshare
Bhavesh window clipping slidshare
 
Clipping computer graphics
Clipping  computer graphicsClipping  computer graphics
Clipping computer graphics
 
Cohen and Sutherland Algorithm for 7-8 marks
Cohen and Sutherland Algorithm for 7-8 marksCohen and Sutherland Algorithm for 7-8 marks
Cohen and Sutherland Algorithm for 7-8 marks
 

Destaque

2 d viewing computer graphics
2 d viewing computer graphics2 d viewing computer graphics
2 d viewing computer graphicsKALESHWAR KUMAR
 
Windows to viewport transformation
Windows to viewport transformationWindows to viewport transformation
Windows to viewport transformationPrashant Singh
 
Two dimensional viewing
Two dimensional viewingTwo dimensional viewing
Two dimensional viewingMohd Arif
 
Database Normalization
Database NormalizationDatabase Normalization
Database NormalizationRathan Raj
 
Notes 2D-Transformation Unit 2 Computer graphics
Notes 2D-Transformation Unit 2 Computer graphicsNotes 2D-Transformation Unit 2 Computer graphics
Notes 2D-Transformation Unit 2 Computer graphicsNANDINI SHARMA
 
Database Normalization 1NF, 2NF, 3NF, BCNF, 4NF, 5NF
Database Normalization 1NF, 2NF, 3NF, BCNF, 4NF, 5NFDatabase Normalization 1NF, 2NF, 3NF, BCNF, 4NF, 5NF
Database Normalization 1NF, 2NF, 3NF, BCNF, 4NF, 5NFOum Saokosal
 
Database design & Normalization (1NF, 2NF, 3NF)
Database design & Normalization (1NF, 2NF, 3NF)Database design & Normalization (1NF, 2NF, 3NF)
Database design & Normalization (1NF, 2NF, 3NF)Jargalsaikhan Alyeksandr
 

Destaque (9)

2 d viewing computer graphics
2 d viewing computer graphics2 d viewing computer graphics
2 d viewing computer graphics
 
Windows to viewport transformation
Windows to viewport transformationWindows to viewport transformation
Windows to viewport transformation
 
Windows and viewport
Windows and viewportWindows and viewport
Windows and viewport
 
Two dimensional viewing
Two dimensional viewingTwo dimensional viewing
Two dimensional viewing
 
Database Normalization
Database NormalizationDatabase Normalization
Database Normalization
 
Notes 2D-Transformation Unit 2 Computer graphics
Notes 2D-Transformation Unit 2 Computer graphicsNotes 2D-Transformation Unit 2 Computer graphics
Notes 2D-Transformation Unit 2 Computer graphics
 
Databases: Normalisation
Databases: NormalisationDatabases: Normalisation
Databases: Normalisation
 
Database Normalization 1NF, 2NF, 3NF, BCNF, 4NF, 5NF
Database Normalization 1NF, 2NF, 3NF, BCNF, 4NF, 5NFDatabase Normalization 1NF, 2NF, 3NF, BCNF, 4NF, 5NF
Database Normalization 1NF, 2NF, 3NF, BCNF, 4NF, 5NF
 
Database design & Normalization (1NF, 2NF, 3NF)
Database design & Normalization (1NF, 2NF, 3NF)Database design & Normalization (1NF, 2NF, 3NF)
Database design & Normalization (1NF, 2NF, 3NF)
 

Semelhante a Lect7 viewing in2d

Lecture1616_16827_2D Clipping.ppt
Lecture1616_16827_2D Clipping.pptLecture1616_16827_2D Clipping.ppt
Lecture1616_16827_2D Clipping.pptGaganvirKaur
 
Windowing clipping
Windowing   clippingWindowing   clipping
Windowing clippingShweta Shah
 
UNIT_3-Two-Dimensional-Geometric-Transformations.pdf
UNIT_3-Two-Dimensional-Geometric-Transformations.pdfUNIT_3-Two-Dimensional-Geometric-Transformations.pdf
UNIT_3-Two-Dimensional-Geometric-Transformations.pdfVivekKumar148171
 
Clipping CG ppt.pptx
Clipping CG ppt.pptxClipping CG ppt.pptx
Clipping CG ppt.pptxAamirSheikh49
 
Unit-IV Windowing and Clipping.pdf
Unit-IV Windowing and Clipping.pdfUnit-IV Windowing and Clipping.pdf
Unit-IV Windowing and Clipping.pdfAmol Gaikwad
 
Clipping & Rasterization
Clipping & RasterizationClipping & Rasterization
Clipping & RasterizationAhmed Daoud
 
Lect11 clipping in3d
Lect11 clipping in3dLect11 clipping in3d
Lect11 clipping in3dBCET
 
CAD - Unit-1 (Fundamentals of Computer Graphics)
CAD - Unit-1 (Fundamentals of Computer Graphics)CAD - Unit-1 (Fundamentals of Computer Graphics)
CAD - Unit-1 (Fundamentals of Computer Graphics)Priscilla CPG
 

Semelhante a Lect7 viewing in2d (14)

Lecture1616_16827_2D Clipping.ppt
Lecture1616_16827_2D Clipping.pptLecture1616_16827_2D Clipping.ppt
Lecture1616_16827_2D Clipping.ppt
 
Windowing clipping
Windowing   clippingWindowing   clipping
Windowing clipping
 
Clipping
ClippingClipping
Clipping
 
7-Clipping-16 (1).pdf
7-Clipping-16 (1).pdf7-Clipping-16 (1).pdf
7-Clipping-16 (1).pdf
 
Chapter4.pdf
Chapter4.pdfChapter4.pdf
Chapter4.pdf
 
Clipping
ClippingClipping
Clipping
 
UNIT_3-Two-Dimensional-Geometric-Transformations.pdf
UNIT_3-Two-Dimensional-Geometric-Transformations.pdfUNIT_3-Two-Dimensional-Geometric-Transformations.pdf
UNIT_3-Two-Dimensional-Geometric-Transformations.pdf
 
Clipping CG ppt.pptx
Clipping CG ppt.pptxClipping CG ppt.pptx
Clipping CG ppt.pptx
 
Clipping
ClippingClipping
Clipping
 
Unit-IV Windowing and Clipping.pdf
Unit-IV Windowing and Clipping.pdfUnit-IV Windowing and Clipping.pdf
Unit-IV Windowing and Clipping.pdf
 
Clipping 22
Clipping 22Clipping 22
Clipping 22
 
Clipping & Rasterization
Clipping & RasterizationClipping & Rasterization
Clipping & Rasterization
 
Lect11 clipping in3d
Lect11 clipping in3dLect11 clipping in3d
Lect11 clipping in3d
 
CAD - Unit-1 (Fundamentals of Computer Graphics)
CAD - Unit-1 (Fundamentals of Computer Graphics)CAD - Unit-1 (Fundamentals of Computer Graphics)
CAD - Unit-1 (Fundamentals of Computer Graphics)
 

Mais de BCET

Lect9 transformation3d
Lect9 transformation3dLect9 transformation3d
Lect9 transformation3dBCET
 
Lect8 viewing in3d&transformation
Lect8 viewing in3d&transformationLect8 viewing in3d&transformation
Lect8 viewing in3d&transformationBCET
 
Lect6 transformation2d
Lect6 transformation2dLect6 transformation2d
Lect6 transformation2dBCET
 
Lect5 filling color_models
Lect5 filling color_modelsLect5 filling color_models
Lect5 filling color_modelsBCET
 
Lect4 ellipse
Lect4 ellipseLect4 ellipse
Lect4 ellipseBCET
 
Lect2 scan convertinglines
Lect2 scan convertinglinesLect2 scan convertinglines
Lect2 scan convertinglinesBCET
 
Lect3 bresenham circlesandpolygons
Lect3 bresenham circlesandpolygonsLect3 bresenham circlesandpolygons
Lect3 bresenham circlesandpolygonsBCET
 
Lect2 scan convertinglines
Lect2 scan convertinglinesLect2 scan convertinglines
Lect2 scan convertinglinesBCET
 
Light pens
Light pensLight pens
Light pensBCET
 
Lcd
LcdLcd
LcdBCET
 
Graphics inputdevices
Graphics inputdevicesGraphics inputdevices
Graphics inputdevicesBCET
 
Crt
CrtCrt
CrtBCET
 
Colour models
Colour modelsColour models
Colour modelsBCET
 
Cathode ray tube
Cathode ray tubeCathode ray tube
Cathode ray tubeBCET
 
Plasma display pannel
Plasma display pannelPlasma display pannel
Plasma display pannelBCET
 
php&mysql with Ethical Hacking
php&mysql with Ethical Hackingphp&mysql with Ethical Hacking
php&mysql with Ethical HackingBCET
 

Mais de BCET (16)

Lect9 transformation3d
Lect9 transformation3dLect9 transformation3d
Lect9 transformation3d
 
Lect8 viewing in3d&transformation
Lect8 viewing in3d&transformationLect8 viewing in3d&transformation
Lect8 viewing in3d&transformation
 
Lect6 transformation2d
Lect6 transformation2dLect6 transformation2d
Lect6 transformation2d
 
Lect5 filling color_models
Lect5 filling color_modelsLect5 filling color_models
Lect5 filling color_models
 
Lect4 ellipse
Lect4 ellipseLect4 ellipse
Lect4 ellipse
 
Lect2 scan convertinglines
Lect2 scan convertinglinesLect2 scan convertinglines
Lect2 scan convertinglines
 
Lect3 bresenham circlesandpolygons
Lect3 bresenham circlesandpolygonsLect3 bresenham circlesandpolygons
Lect3 bresenham circlesandpolygons
 
Lect2 scan convertinglines
Lect2 scan convertinglinesLect2 scan convertinglines
Lect2 scan convertinglines
 
Light pens
Light pensLight pens
Light pens
 
Lcd
LcdLcd
Lcd
 
Graphics inputdevices
Graphics inputdevicesGraphics inputdevices
Graphics inputdevices
 
Crt
CrtCrt
Crt
 
Colour models
Colour modelsColour models
Colour models
 
Cathode ray tube
Cathode ray tubeCathode ray tube
Cathode ray tube
 
Plasma display pannel
Plasma display pannelPlasma display pannel
Plasma display pannel
 
php&mysql with Ethical Hacking
php&mysql with Ethical Hackingphp&mysql with Ethical Hacking
php&mysql with Ethical Hacking
 

Lect7 viewing in2d

  • 1. Computer Graphics 4: Viewing In 2D Sudipta Mondal
  • 2. 2 of 30 Contents Windowing Concepts Clipping – Introduction – Brute Force – Cohen-Sutherland Clipping Algorithm Area Clipping – Sutherland-Hodgman Area Clipping Algorithm
  • 3. 3 of 30 Windowing I A scene is made up of a collection of objects specified in world coordinates World Coordinates
  • 4. 4 of 30 Windowing II When we display a scene only those objects within a particular window are displayed Window wymax wymin wxmin wxmax World Coordinates
  • 5. 5 of 30 Windowing III Because drawing things to a display takes time we clip everything outside the window Window wymax wymin wxmin wxmax World Coordinates
  • 6. 6 of 30 Clipping Avoid Drawing Parts of Primitives Outside Window – Window defines part of scene being viewed – Must draw geometric primitives only inside window World Coordinates
  • 7. 7 of 30 Viewport Transformation Transform 2D Geometric Primitives from Screen Coordinate System (Projection Coordinates) to Image Coordinate System (Device Coordinates) Screen Image Viewport
  • 8. 8 of 30 Window vs. Viewport Window – World-coordinate area selected for display – What is to be viewed Viewport – Area on the display device to which a window is mapped – Where it is to be displayed
  • 9. 9 of 30 Viewport Transformation Window-to-Viewport Mapping Window Viewport wy2 vy2 (wx, wy) (vx, vy) wy1 vy1 wx1 wx2 vx1 vx2 Screen Coordinates Image Coordinates vx = vx1 + (wx – wx1) * (vx2 – vx1) / (wx2 – wx1); vy = vy1 + (wy – wy1) * (vy2 – vy1) / (wy2 – wy1);
  • 11. 11 of 30 Clipping For the image below consider which lines and points should be kept and which ones should be clipped P4 Window P2 wymax P6 P3 P1 P7 P5 P9 P8 wymin P10 wxmin wxmax
  • 12. 12 of 30 Point Clipping Easy - a point (x,y) is not clipped if: wxmin ≤ x ≤ wxmax AND wymin ≤ y ≤ wymax otherwise it is clipped P4 Clipped Clipped Window P2 wymax Clipped P5 P1 P7 Points Within the Window are Not Clipped P9 P8 wymin Clipped P10 wxmin wxmax
  • 13. 13 of 30 Line Clipping Harder - examine the end-points of each line to see if they are in the window or not Situation Solution Example Both end-points inside Don’t clip the window One end-point inside the window, one Must clip outside Both end-points Don’t know! outside the window
  • 14. 14 of 30 Brute Force Line Clipping Brute force line clipping can be performed as follows: – Don’t clip lines with both end-points within the window – For lines with one end- point inside the window and one end-point outside, calculate the intersection point (using the equation of the line) and clip from this point out
  • 15. 15 of 30 Brute Force Line Clipping (cont…) – For lines with both end- points outside the window test the line for intersection with all of the window boundaries, and clip appropriately However, calculating line intersections is computationally expensive Because a scene can contain so many lines, the brute force approach to clipping is much too slow
  • 16. 16 of 30 Cohen-Sutherland Clipping Algorithm An efficient line clipping algorithm The key advantage of the algorithm is that it vastly reduces the number of line intersections that must be Dr. Ivan E. Sutherland co-developed the Cohen- calculated Sutherland clipping algorithm. Sutherland is a graphics giant and includes amongs t his Cohen is something of a mystery – can achievements the anybody find out who he was? invention of the head m o u n t e d d i s p l a y.
  • 17. 17 of 30 Cohen-Sutherland: World Division World space is divided into regions based on the window boundaries – Each region has a unique four bit region code – Region codes indicate the position of the regions with respect to the window 1001 1000 1010 3 2 1 0 0000 above below right left 0001 0010 Window Region Code Legend 0101 0100 0110
  • 18. 18 of 30 Cohen-Sutherland: Labelling Every end-point is labelled with the appropriate region code P11 [1010] P4 [1000] Window wymax P6 [0000] P3 [0001] P5 [0000] P12 [0010] P7 [0001] P9 [0000] P8 [0010] wymin P10 [0100] P13 [0101] P14 [0110] wxmin wxmax
  • 19. 19 of 30 Cohen-Sutherland: Lines In The Window Lines completely contained within the window boundaries have region code [0000] for both end-points so are not clipped P11 [1010] P4 [1000] Window wymax P6 [0000] P3 [0001] P5 [0000] P12 [0010] P7 [0001] P9 [0000] P8 [0010] wymin P10 [0100] P13 [0101] P14 [0110] wxmin wxmax
  • 20. 20 of Cohen-Sutherland: Lines Outside The 30 Window Any lines with a common set bit in the region codes of both end-points can be clipped – The AND operation can efficiently check this P11 [1010] P4 [1000] Window wymax P6 [0000] P3 [0001] P5 [0000] P12 [0010] P7 [0001] P9 [0000] P8 [0010] wymin P10 [0100] P13 [0101] P14 [0110] wxmin wxmax
  • 21. 21 of 30 Cohen-Sutherland: Other Lines Lines that cannot be identified as completely inside or outside the window may or may not cross the window interior These lines are processed as follows: – Compare an end-point outside the window to a boundary (choose any order in which to consider boundaries e.g. left, right, bottom, top) and determine how much can be discarded – If the remainder of the line is entirely inside or outside the window, retain it or clip it respectively
  • 22. 22 of 30 Cohen-Sutherland: Other Lines (cont…) – Otherwise, compare the remainder of the line against the other window boundaries – Continue until the line is either discarded or a segment inside the window is found We can use the region codes to determine which window boundaries should be considered for intersection – To check if a line crosses a particular boundary we compare the appropriate bits in the region codes of its end-points – If one of these is a 1 and the other is a 0 then the line crosses the boundary
  • 23. 23 of 30 Cohen-Sutherland Examples Consider the line P9 to P10 below – Start at P10 Window wymax – From the region codes of the two end-points we know the line doesn’t P [0000] 9 wymin cross the left or right P ’ [0000] 10 boundary P [0100] 10 wxmin wxmax – Calculate the intersection of the line with the bottom boundary to generate point P10’ – The line P9 to P10’ is completely inside the window so is retained
  • 24. 24 of 30 Cohen-Sutherland Examples (cont…) Consider the line P3 to P4 below – Start at P4 P ’ [1000] P [1000] 4 4 Window – From the region codes wymax of the two end-points P [0001] 3 we know the line crosses the left wymin boundary so calculate the intersection point to generate P4’ wxmin wxmax – The line P3 to P4’ is completely outside the window so is clipped
  • 25. 25 of 30 Cohen-Sutherland Examples (cont…) Consider the line P7 to P8 below – Start at P7 Window – From the two region wymax codes of the two end-points we know P7 [0001] P7’ [0000] P8 [0010] the line crosses the P8’ [0000] wymin left boundary so calculate the intersection point to wxmin wxmax generate P7’
  • 26. 26 of 30 Cohen-Sutherland Examples (cont…) Consider the line P7’ to P8 – Start at P8 Window – Calculate the wymax intersection with the right boundary to P7 [0001] P7’ [0000] P8 [0010] generate P8’ P8’ [0000] wymin – P7’ to P8’ is inside the window so is retained wxmin wxmax
  • 27. 27 of 30 Cohen-Sutherland Worked Example Window wymax wymin wxmin wxmax
  • 28. 28 of 30 Calculating Line Intersections Intersection points with the window boundaries are calculated using the line- equation parameters – Consider a line with the end-points (x1, y1) and (x2, y2) – The y-coordinate of an intersection with a vertical window boundary can be calculated using: y = y1 + m (xboundary - x1) where xboundary can be set to either wxmin or wxmax
  • 29. 29 of 30 Calculating Line Intersections (cont…) – The x-coordinate of an intersection with a horizontal window boundary can be calculated using: x = x1 + (yboundary - y1) / m where yboundary can be set to either wymin or wymax – m is the slope of the line in question and can be calculated as m = (y2 - y1) / (x2 - x1)
  • 30. 30 of 30 Area Clipping Similarly to lines, areas must be clipped to a window boundary Consideration must be taken as to which portions of the area must be clipped
  • 31. 31 of Sutherland-Hodgman Area Clipping 30 Algorithm Sutherland A technique for clipping areas turns up developed by Sutherland & again. This time with Hodgman Gary Hodgman with whom he worked at Put simply the polygon is clipped the first ever by comparing it against each graphics company Evans & Sutherland boundary in turn Original Area Clip Left Clip Right Clip Top Clip Bottom
  • 32. 32 of Sutherland-Hodgman Area Clipping 30 Algorithm (cont…) To clip an area against an individual boundary: – Consider each vertex in turn against the boundary. – Vertices inside the boundary are saved for clipping against the next boundary. – Vertices outside the boundary are clipped.
  • 33. 33 of Sutherland-Hodgman Area Clipping 30 Algorithm (cont…) To clip an area against an individual boundary: – If we proceed from a point inside the boundary to one outside, the intersection of the line with the boundary is saved. – If we cross from the outside to the inside intersection point and the vertex are saved.
  • 34. 34 of 30 Sutherland-Hodgman Example Each example S shows the point being processed (P) P I S and the previous P point (S) Save Point P Save Point I Saved points define P S area clipped to the I P boundary in question S No Points Saved Save Points I & P
  • 35. 35 of 30 Other Area Clipping Concerns Clipping concave areas can be a little more tricky as often superfluous lines must be removed Window Window Window Window Clipping curves requires more work – For circles we must find the two intersection points on the window boundary
  • 36. 36 of 30 Weiler-Atherton Polygon Clipping – Here, the vertex-processing procedures for window boundaries are modified so that concave polygons are displayed correctly. – The basic idea in this algorithm is that instead of always proceeding around the polygon edges as vertices are processed, we sometimes want to follow the window boundaries.
  • 37. 37 of 30 Weiler-Atherton Polygon Clipping – Which path we follow depends on the polygon-processing direction (clockwise or counterclockwise). – Whether the pair of polygon vertices currently being processed represents an outside-to-inside pair or an inside-to-outside pair.
  • 38. 38 of 30 Weiler-Atherton Polygon Clipping For clockwise processing of polygon vertices, we use the following rules: –For an outside-to-inside pair of vertices, follow the polygon boundary. –For an inside-to-outside pair of vertices, follow the window boundary in a clockwise direction.
  • 39. 39 of 30 Weiler-Atherton Polygon Clipping
  • 40. 40 of 30 Summary Objects within a scene must be clipped to display the scene in a window Because there can be so many objects clipping must be extremely efficient The Cohen-Sutherland algorithm can be used for line clipping The Sutherland-Hodgman algorithm can be used for area clipping
  • 42. 42 of 30 Cohen-Sutherland Clipping Algorithm VI Let’s consider the lines remaining below P11 [1010] P4 [1000] Window wymax P6 [0000] P3 [0001] P5 [0000] P12 [0010] P7 [0001] P9 [0000] P8 [0010] wymin P10 [0100] P13 [0101] P14 [0110] wxmin wxmax
  • 43. 43 of 30 Cohen-Sutherland Clipping Algorithm Easy - a point (x,y) is not clipped if: wxmin ≤ x ≤ wxmax AND wymin ≤ y ≤ wymax otherwise it is clipped P4 Clipped Clipped Window P2 wymax Clipped P5 P1 P7 Points Within the Window are Not Clipped P9 P8 wymin Clipped P10 wxmin wxmax
  • 44. 44 of 30 Clipping Point clipping is easy: – For point (x,y) the point is not clipped if wxmin ≤ x ≤Pwxmax AND wymin ≤ y ≤ wymax 4 Window P2 wymax P6 P3 P1 P7 P5 P9 P8 wymin P10 wxmin wxmax Before Clipping