0% found this document useful (0 votes)
1K views36 pages

Unit II Windowing and Clipping

The document discusses windowing and clipping in computer graphics. Windowing refers to displaying only a portion of a scene within a specified rectangular region called a window. Clipping is the process of extracting only the portions of objects that fall within the window boundaries. The Cohen-Sutherland algorithm is an efficient line clipping algorithm that works by assigning region codes to line endpoints based on their position relative to the window boundaries and then using the codes to determine if lines can be fully clipped or retained without calculating intersections.

Uploaded by

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

Unit II Windowing and Clipping

The document discusses windowing and clipping in computer graphics. Windowing refers to displaying only a portion of a scene within a specified rectangular region called a window. Clipping is the process of extracting only the portions of objects that fall within the window boundaries. The Cohen-Sutherland algorithm is an efficient line clipping algorithm that works by assigning region codes to line endpoints based on their position relative to the window boundaries and then using the codes to determine if lines can be fully clipped or retained without calculating intersections.

Uploaded by

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

Computer Graphics: Viewing In 2D

Windowing
• The world or model coordinate system is used to define the position of
objects in the natural world.

• Sometimes the complete picture of object in the world coordinate system is


too large and complicate to clearly show on the screen, and we need to
show only some part of the object. The capability, that show some part of
an object, inside a specified window is called windowing and a rectangular
region in a world coordinate system is called window.
A rectangular region in a world coordinate system is called window.
A Viewport is the section of the screen where the images encompassed by the
window in the world coordinate system will be drawn.
A coordinate transformation is required to display the image, encompassed by
the window, in the viewport. The viewport uses the screen coordinate
system so this transformation is from the world coordinate system to the
screen coordinate system.
Windowing
• 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
# Clipping
• When a window is "placed" on the world, only certain objects and parts of objects
which are inside the window can be seen. Points and lines which are outside the
window are "cut off" from view. This process of "cutting off" parts of the image of
the world is called Clipping.
or

• Clipping is a process of extracting a portion of a data base or identifying


elements of a scene or picture inside or outside a specified region (window),
called the clipping region.
• In clipping, we examine each line to determine whether or not it is completely
inside the window, completely outside the window, or crosses a window boundary.
If inside the window, the line is displayed. If outside the window, the lines and
points are not displayed. If a line crosses the boundary, we must determine the
point of intersection and display only the part which lies inside the window.
Clipping
• Clipping helps in discarding a part of the geometry outside the viewing
window, such that all the transformations that are to be carried out for
zooming and panning of the image on the screen are applied only on the
necessary geometry.
• For the image below considered, 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
• 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
Line Clipping
• 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 out
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 calculated
Cohen-Sutherland: World Division
• World space is divided into regions based on
the window boundaries
– Each region has a unique four digit region code
– Region codes indicate the position of the regions
with respect to the window
1001 1000 1010
T B R L

above below right left 0000


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
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 digit 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 Window
wymax
– Start at P10
– From the region codes
of the two end-points we wy P [0000]
9

min
know the line doesn’t P ’ [0000]
10

P [0100]
cross the left or right 10

wxmin wxmax
boundary
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
Cohen-Sutherland Examples (cont…)

• Consider the line P3 to P4 below P4 [1000]


P4’ [1001]
– Start at P4 wymax
Window

– From the region codes P [0001]


3
of the two end-points
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
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’
Cohen-Sutherland Examples (cont…)

• Consider the line P7’ to P8


– Start at P8 Window
wymax
– Calculate the
intersection with the P7’ [0000]
right boundary to P7 [0001]
P8’ [0000]
P8 [0010]

generate P8’ wymin

– P7’ to P8’ is inside


the window so is wxmin wxmax
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)
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
Sutherland-Hodgman Area Clipping
Algorithm
• A technique for clipping areas
developed by Sutherland &
Hodgman
• Put simply the polygon is clipped
by comparing it against each
boundary in turn

Original Area Clip Left Clip Right Clip Top Clip Bottom
Sutherland-Hodgman Area Clipping
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
– 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
Sutherland-Hodgman Example
• Each example S
shows the point
S
being processed (P) P
I
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
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
Summary
• 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
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
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
Clipping
• Point clipping is easy:
– For point (x,y) the point is not clipped if
wxmin ≤ x ≤P wxmax AND wymin ≤ y ≤ wymax
4

Window P2
wymax
P6
P3
P1
P7 P5

P9
P8
wymin
P10

wxmin wxmax
Before Clipping

You might also like