Clipping Algorithm
Clipping Algorithm
Clipping
Outlines
• Clipping
– Introduction
– Brute Force Approach
– Cohen-Sutherland Clipping Algorithm
Clipping Concept
• Any procedure that eliminates those portion of a
picture that are either inside or outside a specified
region is referred to as a clipping algorithm
World Coordinates
Clipping Concept
• When we display a scene only those objects
within a particular window are displayed
Window or Clipping Region
wymax
wymin
wxmin wxmax
World Coordinates
Clipping Concept
• Because drawing things to a display takes time
we clip everything outside the window
Window or Clipping Region
wymax
wymin
wxmin wxmax
World Coordinates
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
Point Clipping
Easy - a point (x,y) is not clipped if:
• wxmin ≤ x ≤ wxmax AND wymin ≤ y ≤ wymax
P4 Clipped
Clipped
Window P2
wymax
Clipped
P5
P1
P7 Points Within the Window
are Not Clipped
P9 P8
wymin
Clipped P10
wxmin wxmax
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
Don’t know!
outside the window
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
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
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
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
The OR 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
Cohen-Sutherland: Lines Outside The 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
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
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
Cohen-Sutherland Examples
• Consider the line P9 to P10 below
– Start at P10 Window
wy
– From the region codes max
P [0100]
10
– Calculate the wx wx
intersection of the line with the bottom boundary to
min max
left boundary so
calculate the
intersection point to wxmin wxmax
generate P7’
Cohen-Sutherland Examples (cont…)
Window
wymax
wymin
wxmin wxmax
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
Calculating Line Intersections (cont…)
Step2 . Enter a loop , within the loop check to see if the both the
out codes are zero , enter the segment into display file, exit loop
and return.
Step 3. If both the out codes are not zero then take logical AND of
both the out codes and check the non zero result. If so, then reject
the line ,exit the loop and return.
p
Text Clipping
• Various techniques are used to provide text clipping in
a computer graphics. •
• It depends on the methods used to generate
characters and the requirements of a particular
application. •
• There are three methods for text clipping which are
listed below −
1. All or none string clipping
2. All or none character clipping
3. Text clipping
All or none string clipping
•In all or none string clipping method, either we
keep the entire string or we reject entire string
based on the clipping window
• All or none character clipping In this method if
the string is partially outside the window, then
1. You reject only the portion of the string being
outside
2. If the character is on the boundary of the
clipping window, then we discard that entire
character and keep the rest string
Practice Problem
Solution