0% found this document useful (0 votes)
4 views39 pages

Clipping Algorithm

The document discusses clipping in computer graphics, focusing on algorithms that eliminate portions of images outside a specified region. It explains the brute force approach and introduces the Cohen-Sutherland clipping algorithm, which efficiently reduces the number of line intersections that need to be calculated. Additionally, it covers text clipping techniques and provides examples and calculations for line intersections with window boundaries.

Uploaded by

branambasey
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views39 pages

Clipping Algorithm

The document discusses clipping in computer graphics, focusing on algorithms that eliminate portions of images outside a specified region. It explains the brute force approach and introduces the Cohen-Sutherland clipping algorithm, which efficiently reduces the number of line intersections that need to be calculated. Additionally, it covers text clipping techniques and provides examples and calculations for line intersections with window boundaries.

Uploaded by

branambasey
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 39

Computer Graphics :

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 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
• 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

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
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 amongst his
Cohen is something of a mystery – can achievements the
anybody find out who he was? invention of the head
mounted display.
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
Top below right left 0001 0010
Window
Region Code Legend

0101 0100 0110


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
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

of the two end-points we


know the line doesn’t P [0000]
cross the left or right
9
wy min
P ’ [0000]
boundary
10

P [0100]
10

– Calculate the wx wx
intersection of the line with the bottom boundary to
min max

generate point P10’


– The line P9 to P10’ is completely inside the window so
is retained
Cohen-Sutherland Examples (cont…)

• Consider the line P7 to P8 below


– Start at P7 Window
wymax
– From the two region
codes of the two P7’ [0000]
end-points we know P7 [0001] P8 [0010]

the line crosses the wymin


P8’ [0000]

left boundary so
calculate the
intersection point to wxmin wxmax
generate P7’
Cohen-Sutherland Examples (cont…)

• Consider the line P7’ to P8


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

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…)

– 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)
Cohen Sutherland Algorithm
Step 1. Compute the out codes for two end points of the segment.

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.

Step4 . If result is zero , then subdivide the line segment from


intersection point of the line segment and clipping boundary. And
repeat the step 2,3,4, for each segment.
The Cohen-Sutherland Clipping Algorithm

• This raises some questions?


– What is the worst case?
– What is the best case?
– How do we decide whether to clip against a
particular edge?
– If we do clip, how to we determine the new
endpoint?
The Cohen-Sutherland Clipping Algorithm

• Consider again the vertical edge x = xmin.


(You can do the other edges.)
• Compute codeword1 ^ codeword2.
• This shows where they disagree.
– Why?
• “And” this with (1 << 3).
– If result = 1, then clip.
– Else do not clip.
The Cohen-Sutherland Clipping Algorithm

• If we clip, then the new point will be on the


line x = xmin.
• So its x-coordinate will be xmin.
• We must calculate its y-coordinate.
The Cohen-Sutherland Clipping Algorithm
x = xmin
q

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

You might also like