SlideShare uma empresa Scribd logo
1 de 34
Windowing Concepts
Clipping
  ◦ Introduction
  ◦ Brute Force
  ◦ Cohen-Sutherland Clipping Algorithm
Area Clipping
  ◦ Sutherland-Hodgman Area Clipping Algorithm
A scene is made up of a collection of objects
specified in world coordinates




                       World Coordinates
When we display a scene only those objects within a
particular window are displayed
                               Window
 wymax




 wymin




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




 wymin




                  wxmin                       wxmax
                          World Coordinates
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
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
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
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
◦ 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
An efficient line clipping algorithm
The key advantage of the algorithm is that it vastly
reduces the number of line intersections that must
be calculated
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
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
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
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
                                P [1010]                    11
                               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
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
◦ 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
Consider the line P9 to P10 below
  ◦ Start at P10
                                                     Window
  ◦ From the region codes              wymax

    of the two end-points we
    know the line doesn’t
                                                    P [0000]
    cross the left or right                          9
                                       wymin
                                                     P ’ [0000]
    boundary
                                                         10


                                                         P [0100]
  ◦ Calculate the
                                                              10


                                              wxmin              wxmax
    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
Consider the line P7 to P8 below
  ◦ Start at P7
  ◦ From the two region     wymax
                                                      Window
    codes of the two
    end-points we know                          P7’ [0000]
    the line crosses the            P7 [0001]                             P8 [0010]
    left boundary so        wymin
                                                             P8’ [0000]

    calculate the
    intersection point to
    generate P7’                           wxmin                    wxmax
Consider the line P7’ to P8
  ◦ Start at P8
  ◦ Calculate the             wymax
                                                        Window
    intersection with the
    right boundary to                             P7’ [0000]
    generate P8’                      P7 [0001]                             P8 [0010]
                                                               P8’ [0000]
  ◦ P7’ to P8’ is inside      wymin
    the window so is
    retained
                                             wxmin                    wxmax
Window
wymax




wymin




        wxmin            wxmax
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
◦ 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)
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
Sutherland
  A technique for clipping areas                turns up
  developed by Sutherland &                     again. This
                                                time with
  Hodgman                                       Gary Hodgman with
  Put simply the polygon is clipped             whom he worked at
  by comparing it against each                  the first ever
                                                graphics company
  boundary in turn                              Evans & Sutherland




Original Area   Clip Left   Clip Right   Clip Top      Clip Bottom
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
  ◦ 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
Each example shows
                                     S
the point being
processed (P) and the                    P
                                                              S
                                                   I
previous point (S)
                                              P
Saved points define          Save Point P         Save Point I
area clipped to the
                        P                     S
boundary in question
                                                   I      P




                        S
                            No Points Saved   Save Points I & P
Clipping concave areas can be a little more tricky as
often superfluous lines must be removed




Clipping curves requires more work
  ◦ For circles we must find theWindow
    Window        Window         two intersection points on
                                                     Window
    the window boundary
Objects within a scene must be clipped to display
the scene in a window
Because there are 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
In general, methods depend on how characters
  are represented
However, three strategies can be followed:
 all-or-none string clipping
    ◦ use a bounding rectangle for the string
   all-or-none character clipping
    ◦ use a bounding rectangle for the character
   individual character clipping or
    component clipping
    ◦ like line/curve clipping (outlined char’s)
    ◦ compare individual pixels (bit-mapped)
So far, the clipping discussion has been about what
 is specified as internal clipping (throw away
 outside parts).
But also external clipping (throw away inside parts)
Clipping Algorithm In Computer Graphics

Mais conteúdo relacionado

Mais procurados

Polygon filling
Polygon fillingPolygon filling
Polygon fillingAnkit Garg
 
Liang- Barsky Algorithm, Polygon clipping & pipeline clipping of polygons
Liang- Barsky Algorithm, Polygon clipping & pipeline clipping of polygonsLiang- Barsky Algorithm, Polygon clipping & pipeline clipping of polygons
Liang- Barsky Algorithm, Polygon clipping & pipeline clipping of polygonsLahiru Danushka
 
Fill area algorithms
Fill area algorithmsFill area algorithms
Fill area algorithmsKumar
 
Cyrus beck line clipping algorithm
Cyrus beck line clipping algorithmCyrus beck line clipping algorithm
Cyrus beck line clipping algorithmPooja Dixit
 
Visible surface detection in computer graphic
Visible surface detection in computer graphicVisible surface detection in computer graphic
Visible surface detection in computer graphicanku2266
 
2D transformation (Computer Graphics)
2D transformation (Computer Graphics)2D transformation (Computer Graphics)
2D transformation (Computer Graphics)Timbal Mayank
 
Computer graphics basic transformation
Computer graphics basic transformationComputer graphics basic transformation
Computer graphics basic transformationSelvakumar Gna
 
Composite transformation
Composite transformationComposite transformation
Composite transformationPooja Dixit
 
Attributes of output primitive(line attributes)
Attributes of output primitive(line attributes)Attributes of output primitive(line attributes)
Attributes of output primitive(line attributes)shalinikarunakaran1
 
2 d viewing computer graphics
2 d viewing computer graphics2 d viewing computer graphics
2 d viewing computer graphicsKALESHWAR KUMAR
 
Windowing clipping
Windowing   clippingWindowing   clipping
Windowing clippingShweta Shah
 
Scan line method
Scan line methodScan line method
Scan line methodPooja Dixit
 
Line drawing algo.
Line drawing algo.Line drawing algo.
Line drawing algo.Mohd Arif
 
Window to viewport transformation&matrix representation of homogeneous co...
Window to viewport transformation&matrix representation of homogeneous co...Window to viewport transformation&matrix representation of homogeneous co...
Window to viewport transformation&matrix representation of homogeneous co...Mani Kanth
 

Mais procurados (20)

Polygon filling
Polygon fillingPolygon filling
Polygon filling
 
Liang- Barsky Algorithm, Polygon clipping & pipeline clipping of polygons
Liang- Barsky Algorithm, Polygon clipping & pipeline clipping of polygonsLiang- Barsky Algorithm, Polygon clipping & pipeline clipping of polygons
Liang- Barsky Algorithm, Polygon clipping & pipeline clipping of polygons
 
Fill area algorithms
Fill area algorithmsFill area algorithms
Fill area algorithms
 
Cyrus beck line clipping algorithm
Cyrus beck line clipping algorithmCyrus beck line clipping algorithm
Cyrus beck line clipping algorithm
 
Visible surface detection in computer graphic
Visible surface detection in computer graphicVisible surface detection in computer graphic
Visible surface detection in computer graphic
 
2D transformation (Computer Graphics)
2D transformation (Computer Graphics)2D transformation (Computer Graphics)
2D transformation (Computer Graphics)
 
Computer graphics basic transformation
Computer graphics basic transformationComputer graphics basic transformation
Computer graphics basic transformation
 
Composite transformation
Composite transformationComposite transformation
Composite transformation
 
Attributes of output primitive(line attributes)
Attributes of output primitive(line attributes)Attributes of output primitive(line attributes)
Attributes of output primitive(line attributes)
 
Three dimensional concepts - Computer Graphics
Three dimensional concepts - Computer GraphicsThree dimensional concepts - Computer Graphics
Three dimensional concepts - Computer Graphics
 
2 d viewing computer graphics
2 d viewing computer graphics2 d viewing computer graphics
2 d viewing computer graphics
 
Windowing clipping
Windowing   clippingWindowing   clipping
Windowing clipping
 
Scan line method
Scan line methodScan line method
Scan line method
 
Subroutine
SubroutineSubroutine
Subroutine
 
Clipping
ClippingClipping
Clipping
 
UNIT-IV
UNIT-IVUNIT-IV
UNIT-IV
 
Computer graphics
Computer graphicsComputer graphics
Computer graphics
 
Line drawing algo.
Line drawing algo.Line drawing algo.
Line drawing algo.
 
Window to viewport transformation&matrix representation of homogeneous co...
Window to viewport transformation&matrix representation of homogeneous co...Window to viewport transformation&matrix representation of homogeneous co...
Window to viewport transformation&matrix representation of homogeneous co...
 
Clipping
ClippingClipping
Clipping
 

Semelhante a Clipping Algorithm In Computer Graphics

Lect7 viewing in2d
Lect7 viewing in2dLect7 viewing in2d
Lect7 viewing in2dBCET
 
Sutherlands Cohen and Hodgeman algorithms
Sutherlands Cohen and Hodgeman algorithmsSutherlands Cohen and Hodgeman algorithms
Sutherlands Cohen and Hodgeman algorithmsRohit Jain
 
Lecture1616_16827_2D Clipping.ppt
Lecture1616_16827_2D Clipping.pptLecture1616_16827_2D Clipping.ppt
Lecture1616_16827_2D Clipping.pptGaganvirKaur
 

Semelhante a Clipping Algorithm In Computer Graphics (6)

Lect7 viewing in2d
Lect7 viewing in2dLect7 viewing in2d
Lect7 viewing in2d
 
Sutherlands Cohen and Hodgeman algorithms
Sutherlands Cohen and Hodgeman algorithmsSutherlands Cohen and Hodgeman algorithms
Sutherlands Cohen and Hodgeman algorithms
 
Clipping
ClippingClipping
Clipping
 
Chapter4.pdf
Chapter4.pdfChapter4.pdf
Chapter4.pdf
 
Lecture1616_16827_2D Clipping.ppt
Lecture1616_16827_2D Clipping.pptLecture1616_16827_2D Clipping.ppt
Lecture1616_16827_2D Clipping.ppt
 
line clipping
line clipping line clipping
line clipping
 

Último

Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxthorishapillay1
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSJoshuaGantuangco2
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersSabitha Banu
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPCeline George
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for BeginnersSabitha Banu
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxMaryGraceBautista27
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...JhezDiaz1
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxAshokKarra1
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfTechSoup
 
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxGrade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxChelloAnnAsuncion2
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxCarlos105
 

Último (20)

Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptx
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginners
 
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptxLEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERP
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for Beginners
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptx
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptx
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptxYOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
 
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxGrade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
 

Clipping Algorithm In Computer Graphics

  • 1.
  • 2. Windowing Concepts Clipping ◦ Introduction ◦ Brute Force ◦ Cohen-Sutherland Clipping Algorithm Area Clipping ◦ Sutherland-Hodgman Area Clipping Algorithm
  • 3. A scene is made up of a collection of objects specified in world coordinates World Coordinates
  • 4. When we display a scene only those objects within a particular window are displayed Window wymax wymin wxmin wxmax World Coordinates
  • 5. Because drawing things to a display takes time we clip everything outside the window Window wymax wymin wxmin wxmax World Coordinates
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. ◦ 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
  • 11. An efficient line clipping algorithm The key advantage of the algorithm is that it vastly reduces the number of line intersections that must be calculated
  • 12. 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
  • 13. 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
  • 14. 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
  • 15. 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 P [1010] 11 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
  • 16. 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
  • 17. ◦ 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
  • 18. Consider the line P9 to P10 below ◦ Start at P10 Window ◦ From the region codes wymax of the two end-points we know the line doesn’t P [0000] cross the left or right 9 wymin P ’ [0000] boundary 10 P [0100] ◦ Calculate the 10 wxmin wxmax 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
  • 19. Consider the line P7 to P8 below ◦ Start at P7 ◦ From the two region wymax Window codes of the two end-points we know P7’ [0000] the line crosses the P7 [0001] P8 [0010] left boundary so wymin P8’ [0000] calculate the intersection point to generate P7’ wxmin wxmax
  • 20. Consider the line P7’ to P8 ◦ Start at P8 ◦ Calculate the wymax Window intersection with the right boundary to P7’ [0000] generate P8’ P7 [0001] P8 [0010] P8’ [0000] ◦ P7’ to P8’ is inside wymin the window so is retained wxmin wxmax
  • 21. Window wymax wymin wxmin wxmax
  • 22. 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
  • 23. ◦ 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)
  • 24. 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
  • 25. Sutherland A technique for clipping areas turns up developed by Sutherland & again. This time with Hodgman Gary Hodgman with Put simply the polygon is clipped whom he worked at by comparing it against each the first ever graphics company boundary in turn Evans & Sutherland Original Area Clip Left Clip Right Clip Top Clip Bottom
  • 26. 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 ◦ 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
  • 27. Each example shows S the point being processed (P) and the P S I previous point (S) P Saved points define Save Point P Save Point I area clipped to the P S boundary in question I P S No Points Saved Save Points I & P
  • 28. Clipping concave areas can be a little more tricky as often superfluous lines must be removed Clipping curves requires more work ◦ For circles we must find theWindow Window Window two intersection points on Window the window boundary
  • 29. Objects within a scene must be clipped to display the scene in a window Because there are 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
  • 30.
  • 31. In general, methods depend on how characters are represented However, three strategies can be followed:  all-or-none string clipping ◦ use a bounding rectangle for the string  all-or-none character clipping ◦ use a bounding rectangle for the character  individual character clipping or component clipping ◦ like line/curve clipping (outlined char’s) ◦ compare individual pixels (bit-mapped)
  • 32.
  • 33. So far, the clipping discussion has been about what is specified as internal clipping (throw away outside parts). But also external clipping (throw away inside parts)