SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

Tendances

Polygon clipping
Polygon clippingPolygon clipping
Polygon clippingAnkit Garg
 
Polygon clipping with sutherland hodgeman algorithm and scan line fill algorithm
Polygon clipping with sutherland hodgeman algorithm and scan line fill algorithmPolygon clipping with sutherland hodgeman algorithm and scan line fill algorithm
Polygon clipping with sutherland hodgeman algorithm and scan line fill algorithmMani Kanth
 
2 d viewing computer graphics
2 d viewing computer graphics2 d viewing computer graphics
2 d viewing computer graphicsKALESHWAR KUMAR
 
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
 
Computer Graphics - Hidden Line Removal Algorithm
Computer Graphics - Hidden Line Removal AlgorithmComputer Graphics - Hidden Line Removal Algorithm
Computer Graphics - Hidden Line Removal AlgorithmJyotiraman De
 
Hidden surface removal algorithm
Hidden surface removal algorithmHidden surface removal algorithm
Hidden surface removal algorithmKKARUNKARTHIK
 
Cohen-Sutherland Line Clipping Algorithm
Cohen-Sutherland Line Clipping AlgorithmCohen-Sutherland Line Clipping Algorithm
Cohen-Sutherland Line Clipping AlgorithmMaruf Abdullah (Rion)
 
HOMOGENEOUS CO-ORDINATES IN COMPUTER GRAPHICS PPT
HOMOGENEOUS CO-ORDINATES IN COMPUTER GRAPHICS PPTHOMOGENEOUS CO-ORDINATES IN COMPUTER GRAPHICS PPT
HOMOGENEOUS CO-ORDINATES IN COMPUTER GRAPHICS PPTAhtesham Ullah khan
 
Clipping in Computer Graphics
Clipping in Computer Graphics Clipping in Computer Graphics
Clipping in Computer Graphics Barani Tharan
 
Two dimensional viewing
Two dimensional viewingTwo dimensional viewing
Two dimensional viewingMohd Arif
 
Hidden surface removal
Hidden surface removalHidden surface removal
Hidden surface removalAnkit Garg
 
The sutherland hodgeman polygon clipping algorithm
The sutherland hodgeman polygon clipping algorithmThe sutherland hodgeman polygon clipping algorithm
The sutherland hodgeman polygon clipping algorithmMani Kanth
 
Unit 3
Unit 3Unit 3
Unit 3ypnrao
 
Composite transformations
Composite transformationsComposite transformations
Composite transformationsMohd Arif
 
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
 

Tendances (20)

Polygon clipping
Polygon clippingPolygon clipping
Polygon clipping
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
 
Polygon clipping with sutherland hodgeman algorithm and scan line fill algorithm
Polygon clipping with sutherland hodgeman algorithm and scan line fill algorithmPolygon clipping with sutherland hodgeman algorithm and scan line fill algorithm
Polygon clipping with sutherland hodgeman algorithm and scan line fill algorithm
 
2 d viewing computer graphics
2 d viewing computer graphics2 d viewing computer graphics
2 d viewing computer graphics
 
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...
 
Boundary fill algm
Boundary fill algmBoundary fill algm
Boundary fill algm
 
Computer Graphics - Hidden Line Removal Algorithm
Computer Graphics - Hidden Line Removal AlgorithmComputer Graphics - Hidden Line Removal Algorithm
Computer Graphics - Hidden Line Removal Algorithm
 
Curves and surfaces
Curves and surfacesCurves and surfaces
Curves and surfaces
 
Hidden surface removal algorithm
Hidden surface removal algorithmHidden surface removal algorithm
Hidden surface removal algorithm
 
Cohen-Sutherland Line Clipping Algorithm
Cohen-Sutherland Line Clipping AlgorithmCohen-Sutherland Line Clipping Algorithm
Cohen-Sutherland Line Clipping Algorithm
 
HOMOGENEOUS CO-ORDINATES IN COMPUTER GRAPHICS PPT
HOMOGENEOUS CO-ORDINATES IN COMPUTER GRAPHICS PPTHOMOGENEOUS CO-ORDINATES IN COMPUTER GRAPHICS PPT
HOMOGENEOUS CO-ORDINATES IN COMPUTER GRAPHICS PPT
 
Windows and viewport
Windows and viewportWindows and viewport
Windows and viewport
 
Clipping in Computer Graphics
Clipping in Computer Graphics Clipping in Computer Graphics
Clipping in Computer Graphics
 
Two dimensional viewing
Two dimensional viewingTwo dimensional viewing
Two dimensional viewing
 
Hidden surface removal
Hidden surface removalHidden surface removal
Hidden surface removal
 
The sutherland hodgeman polygon clipping algorithm
The sutherland hodgeman polygon clipping algorithmThe sutherland hodgeman polygon clipping algorithm
The sutherland hodgeman polygon clipping algorithm
 
Unit 3
Unit 3Unit 3
Unit 3
 
Polygon filling
Polygon fillingPolygon filling
Polygon filling
 
Composite transformations
Composite transformationsComposite transformations
Composite transformations
 
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
 

Dernier

social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajanpragatimahajan3
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...fonyou31
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfchloefrazer622
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 

Dernier (20)

social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajan
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdf
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 

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)