0% found this document useful (0 votes)
55 views63 pages

Clipping

Chapter 7 discusses 2D clipping in computer graphics, which is the process of determining which elements of a scene are visible within a specified window. It covers various types of clipping, including point, line, polygon, and text clipping, as well as methods such as analytical clipping and the Cohen-Sutherland algorithm. The chapter highlights the importance of clipping for efficient rendering and provides examples of how different clipping techniques are applied.
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)
55 views63 pages

Clipping

Chapter 7 discusses 2D clipping in computer graphics, which is the process of determining which elements of a scene are visible within a specified window. It covers various types of clipping, including point, line, polygon, and text clipping, as well as methods such as analytical clipping and the Cohen-Sutherland algorithm. The chapter highlights the importance of clipping for efficient rendering and provides examples of how different clipping techniques are applied.
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

Chapter 7

2D Clipping
2D Clipping
1. Introduction
2. Point Clipping
3. Line Clipping
4. Polygon/Area Clipping
5. Text Clipping
6. Curve Clipping
2D Clipping
1. Introduction:
A scene is made up of a collection of objects specified in world
coordinates

World Coordinates
* Computer Graphics 3
2D Clipping
When we display a scene only those objects within a particular
window are displayed
Window
wymax

wymin

wxmin World Coordinates wxmax


* Computer Graphics 4
2D Clipping
Because drawing things to a display takes time we clip everything
outside the window
Window
wymax

wymin

wxmin wxmax
* Computer
World Graphics
Coordinates 5
2D Clipping
1.1 Definition:
– Clipping is the process of determining which elements of
the picture lie inside the window and are visible.

– By default, the “clip window” is the entire canvas


• not necessary to draw outside the canvas
• for some devices, it is damaging (plotters)
•\
– Sometimes it is convenient to restrict the “clip window” to
a smaller portion of the canvas
• partial canvas redraw for menus, dialog boxes, other obscuration

* Computer Graphics 6
2D Clipping
1.2 Shielding:
– Shielding or exterior clipping is the reverse operation of
clipping where window act as the block used to abstract the
view.

– Examples
• A multi view window system
• The design of page layouts in advertising or publishing
applications or for adding labels or design patterns to
picture.
• Combining graphs, maps o schematics
* Computer Graphics 7
2D Clipping

Window
wymax

wymin

wxmin World Coordinates wxmax


* Computer Graphics 8
2D Clipping
1.3 Example:
For the image below consider which lines and points should be kept
and which ones should be clipped against the clipping window
P4

Window P2
wymax
P6
P3
P1
P7 P5

P9
P8
wymin
P10

* wxmin Computer Graphicswx 9


max
2D Clipping
1.4 Applications:
– Extract part of a defined scene for viewing.
– Drawing operations such as erase, copy, move etc.
– Displaying multi view windows.
– Creating objects using solid modeling techniques.
– Anti-aliasing line segments or object boundaries.
– Identify visible surfaces in 3D views.

* Computer Graphics 10
2D Clipping
1.5 Types of clipping:
– Three types of clipping techniques are used depending
upon when the clipping operation is performed

a. Analytical clipping
– Clip it before you scan convert it
– used mostly for lines, rectangles, and polygons, where
clipping algorithms are simple and efficient

* Computer Graphics 11
2D Clipping

b. Scissoring
– Clip it during scan conversion
– a brute force technique
• scan convert the primitive, only write pixels if inside the clipping
region
• easy for thick and filled primitives as part of scan line fill
• if primitive is not much larger than clip region, most pixels will fall
inside
• can be more efficient than analytical clipping.

* Computer Graphics 12
2D Clipping

c. Raster Clipping
– Clip it after scan conversion
– render everything onto a temporary canvas and copy the
clipping region
• wasteful, but simple and easy,
• often used for text

* Computer Graphics 13
2D Clipping
Foley and van Dam suggest the following:
– for floating point graphics libraries, try to use analytical
clipping
– for integer graphics libraries
• analytical clipping for lines and polygons
• others, do during scan conversion
– sometimes both analytical and raster clipping performed

* Computer Graphics 14
2D Clipping
1.6 Levels of clipping:
– Point Clipping
– Line Clipping
– Polygon Clipping
– Area Clipping
– Text Clipping
– Curve Clipping

* Computer Graphics 15
2D Clipping
1. Introduction
2. Point Clipping
3. Line Clipping
4. Polygon/Area Clipping
5. Text Clipping
6. Curve Clipping
Point Clipping
– Simple and Easy P4 Clipped
Clipped
– a point (x,y) is not clipped if: Window P2
wymax
wxmin ≤ x ≤ wxmax Clipped
P5
& P7
P1
Points Within the Window

wymin ≤ y ≤ wymax are Not Clipped


P9 P8
wymin

– otherwise it is clipped Clipped P10

wxmin wxmax

* Computer Graphics 17
2D Clipping
1. Introduction
2. Point Clipping
3. Line Clipping
4. Polygon/Area Clipping
5. Text Clipping
6. Curve Clipping
Line Clipping
– It is Harder than point
clipping
– We first examine the ymax
end-points of each line to
see if they are in the
window or not
• Both endpoints inside, line
trivially accepted
ymin
• One in and one out, line is
partially inside
• Both outside, might be
partially inside xmin xmax
• What about trivial cases?

* Computer Graphics 19
Line Clipping
Situation Solution Example

Both end-points inside


Don’t clip
the window

One end-point inside the


Must clip
window, one outside

Both end-points outside


Don’t know!
the window

* Computer Graphics 20
2D Line Clipping Algorithms
1. Analytical Line Clipping
2. Cohen Sutherland Line Clipping
3. Liang Barsky Line Clipping
Cohen-Sutherland Line Clipping
– 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.

* Computer Graphics 22
Cohen-Sutherland Line Clipping
– Two phases Algorithm

Phase I: Identification Phase


All line segments fall into one of the following categories
1. Visible: Both endpoints lies inside
2. Invisible: Line completely lies outside
3. Clipping Candidate: A line neither in category 1 or 2

Phase II: Perform Clipping


Compute intersection for all lines that are candidate for
clipping.
* Computer Graphics 23
Cohen-Sutherland Line Clipping
Phase I: Identification Phase: 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
0001 0010
abov belo
right left Window
e w
Region Code Legend
0101 0100 0110
* Computer Graphics 24
Cohen-Sutherland Line Clipping
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
* Computer Graphics 25
Cohen-Sutherland Line Clipping
Visible Lines: 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 Computer Graphics wxmax 26


Cohen-Sutherland Line Clipping
Invisible Lines: Any line with a common set bit in the region
codes of both end-points can be clipped completely
– The AND operation can efficiently check this
– Non Zero means Invisible
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 Computer Graphics wxmax 27


Cohen-Sutherland Line Clipping
Clipping Candidates: Lines that cannot be identified as
completely inside or outside the window may or may not cross
the window interior. These lines are processed in Phase II.
– If AND operation result in 0 the line is candidate for clipping
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 Computer Graphics wxmax 28


Cohen-Sutherland Line Clipping

Assigning Codes
– Let point (x,y) is be given P4 [1000]
P11 [1010]

code b3b2b1b0: Window


wymax
bit 3 = 1 if wymax - y ≤0 P3 [0001]
P6 [0000]

P5 [0000] P12 [0010]


bit 2 = 1 if y - wymin ≤ 0 P7 [0001]
P9 [0000] P8 [0010]
bit 1 = 1 if wxmax - x ≤0 wymin
P10 [0100]
bit 0 = 1 if x - wxmin ≤ 0 P13 [0101] P14 [0110]

wxmin wxmax

* Computer Graphics 29
Cohen-Sutherland Clipping Algorithm
Phase II: Clipping Phase: Lines that are in category 3 are now
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

* Computer Graphics 30
Cohen-Sutherland Line Clipping
• 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
* Computer Graphics 31
Cohen-Sutherland Line Clipping
• 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.

* Computer Graphics 32
Cohen-Sutherland Line Clipping
Example1: Consider the line P9 to P10 below
– Start at P10 Window
wymax
– From the region codes
of the two end-points we
know the line doesn’t
P [0000]
cross the left or right wymin
9

P ’ [0000]
boundary 10

– Calculate the intersection P [0100]


10

of the line with the bottom boundary wxmin wxmax


to generate point P10’
– The line P9 to P10’ is completely inside the window so is
retained
* Computer Graphics 33
Cohen-Sutherland Line Clipping
Example 2: Consider the line P3 to P4 below
– Start at P4 P ’ [1001]
P4 [1000]
4
Window
– From the region codes wymax
of the two end-points P [0001]
3

we know the line


crosses the left
boundary so calculate wymin
the intersection point to
generate P4’
wxmin wxmax

– The line P3 to P4’ is completely outside the window so is


clipped
* Computer Graphics 34
Cohen-Sutherland Line Clipping
Example 3: Consider the line P7 to P8 below
– Start at P7
– From the two region Window
wymax
codes of the two
end-points we know P ’ [0000]
7

the line crosses the P [0001] 7


P [0010]
8
P ’ [0000]
left boundary so wymin
8

calculate the
intersection point to
generate P7’ wxmin wxmax

* Computer Graphics 35
Cohen-Sutherland Line Clipping
Example 4: Consider the line P7’ to P8
– Start at P8
– Calculate the Window
wymax
intersection with the
right boundary to P7’ [0000]
generate P8’ P 7
[0001] P8 [0010]
P8’ [0000]
– P7’ to P8’ is inside wymin
the window so is
retained
wxmin wxmax

* Computer Graphics 36
Cohen-Sutherland Line Clipping
Mid-Point Subdivision Method
– Algorithm
1. Initialise the list of lines to all lines
2. Classify lines as in Phase I
i. Assign 4 point bit codes to both end points a3a2a1a0 and b3b2b1b0
ii. If (a3a2a1a0 = b3b2b1b0 = 0 )Line in category 1
iii. If (a3a2a1a0)AND (b3b2b1b0 ) # 0 ) Line in category 2
iv. If (a3a2a1a0)AND (b3b2b1b0 ) = 0 ) Line in category 3
3. Display all lines from the list in category 1 and remove;
4. Delete all lines from the list in category 2 as they are invisible;
5. Divide all lines of category 3 are into two smaller segments at mid-point
(xm,ym) where xm = (x1 +x2)/2 and ym = (y1 +y2)/2
6. Remove the original line from list and enter its two newly created
segments.
7. Repeat step 2-5 until list is null.

* Computer Graphics 37
Cohen-Sutherland Line Clipping

Window
wymax

wymin

* wxminComputer Graphics wxmax 38


Cohen-Sutherland Line Clipping

Window
wymax

wymin

* wxminComputer Graphics wxmax 39


Cohen-Sutherland Line Clipping
Mid-Point Subdivision Method

– Integer Version
– Fast as Division by 2 can be performed by simple shift
right operation
– For NxN max dimension of line number of subdivisions
required log2 N.
– Thus a 1024x1024 raster display require just 10
subdivisions………

* Computer Graphics 40
2D Clipping
1. Introduction
2. Point Clipping
3. Line Clipping
4. Polygon / Area Clipping
5. Text Clipping
6. Curve Clipping
Polygon Clipping
• Polygons have a distinct inside and outside…
• Decided by
– Even/Odd
– Winding Number

* Computer Graphics 42
Polygon Clipping
• Note the difference between clipping lines and
polygons:

NOTE!

* Computer Graphics 43
Polygon Clipping
• Some difficulties:
– Maintaining correct inside/outside
– Variable number of vertices
– Handle screen corners
correctly

* Computer Graphics 44
Sutherland-Hodgman Area Clipping
• 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
* Computer Graphics 45
Sutherland-Hodgeman Polygon Clipping
1. Basic Concept:
• Simplify via separation
• Clip whole polygon against one edge
– Repeat with output for other 3 edges
– Similar for 3D
• You can create intermediate vertices that get thrown
out

* Computer Graphics 46
Sutherland-Hodgeman Polygon Clipping
• Example

Start Left Right Bottom Top


Note that the point one of the points added when clipping
on the right gets removed when we clip with bottom
* Computer Graphics 47
Sutherland-Hodgeman Polygon Clipping
2. Algorithm:
Let (P1, P2,…. PN) be the vertex list of the Polygon to be
clipped and E be the edge of +vely oriented, convex clipping
window.

We clip each edge of the polygon in turn against each window


edge E, forming a new polygon whose vertices are determined
as follows:

* Computer Graphics 48
Sutherland-Hodgeman Polygon Clipping
Four cases
1. Inside: If both Pi-1 and Pi are to the left of window edge
vertex then Pi is placed on the output vertex list.
2. Entering: If Pi-1 is to the right of window edge and Pi is to
the left of window edge vertex then intersection (I) of Pi-1 Pi
with edge E and Pi are placed on the output vertex list.
3. Leaving: If Pi-1 is to the left of window edge and Pi is to the
right of window edge vertex then only intersection (I) of Pi-1
Pi with edge E is placed on the output vertex list.
4. Outside: If both Pi-1 and Pi are to the right of window edge
nothing is placed on the output vertex list.

* Computer Graphics 49
Sutherland-Hodgeman Polygon Clipping
Creating New Vertex List

Pi-1
Pi Pi
Pi-1

Pi Pi-1
Pi Pi-1
in ฀ in out ฀ in in ฀ out out ฀ out
save ending vert save new clip vert save new clip vert save nothing
Inside and ending vert Leaving Outside
(1 output) Entering (1 output) (0 output)
(2 outputs)
* Computer Graphics 50
Sutherland-Hodgman Polygon Clipping
S
• Each example shows the
point being processed (P) S
and the previous point (S) P
I

P
Save Point P Save Point I
• Saved points define area
P S
clipped to the boundary in
question I P

S
No Points Saved Save Points I & P
* Computer Graphics 51
START

Flow Chart INPUT VERTEX LIST


(P1, P2........, PN)

FOR i =1 TO (N-1) DO

YES IF PiPi+1 NO
INTERSECT E
?

COMPUTE I

OUTPUT I IN VERTEX LIST

YES IF Pi TO LEFT NO
OF E ?

Special case for


OUTPUT Pi IN VERTEX LIST

first Vertex i = i+1

* Computer Graphics 52
Flow Chart
Special case for YES IF PNP0 NO
first Vertex INTERSECT
E?

COMPUTE I

OUTPUT I IN VERTEX
LIST

END

YOU CAN ALSO APPEND AN ADDITIONAL VERTEX


PN+1 = P1 AND AVOID SPECIAL CASE FOR FIRST
VERTEX

* Computer Graphics 53
Sutherland-Hodgeman Polygon Clipping
Inside/Outside Test:
Let P(x,y) be the polygon vertex which is to be tested against
edge E defined form A(x1, y1) to B(x2, y2). Point P is to be said
to the left (inside) of E or AB iff

or C = (x2 – x1) (y – y1) – (y2 – y1)(x – x1) > 0

otherwise it is said to be the right/Outside of edge E

* Computer Graphics 54
2D Clipping
1. Introduction
2. Point Clipping
3. Line Clipping
4. Polygon/Area Clipping
5. Text Clipping
6. Curve Clipping
Text Clipping
Text clipping relies on the concept of bounding
rectangle

TYPES
1. All or None String Clipping
2. All or None Character Clipping
3. Component Character Clipping

* Computer Graphics 56
Text Clipping
1. All or None String Clipping
• In this scheme, if all of the string is inside window, we clip it,
otherwise the string is discarded. This is the fastest method.
• The procedure is implemented by consider a bounding rectangle
around the text pattern. The boundary positions are compared to
the window boundaries. In case of overlapping the string is
rejected.
STRING
5

STRI NG
G
1 RIN
ST
STRING 2

3 STRING STRING
* 4 Computer Graphics 4 57
Text Clipping
2. All or None Character Clipping
• In this scheme, we discard only those characters that are not
completely inside window.
• Boundary limits of individual characters are compared against
window. In case of overlapping the character is rejected.

STRING
5

STRI NG NG
G
1 RIN 1 RI
ST ST
STRING 2 TRING
3 STRING 3 STRING
* 4 Computer Graphics 4 58
Text Clipping
3. Component Character Clipping
• Characters are treated like graphic objects.
– Bit Mapped Fonts : Point Clipping
– Outlined Fonts : Line/Curve Clipping
• In case of overlapping the part of the character inside is displayed
and the outside portion of the character is rejected.

STRING
5

STRI NG NG
G
1 RIN 1
RI
ST ST
STRING 2 STRING N
3 STRING 3 STRING
* 4 Computer Graphics 4 59
2D Clipping
1. Introduction
2. Point Clipping
3. Line Clipping
4. Polygon/Area Clipping
5. Text Clipping
6. Curve Clipping
Curve Clipping
– Areas with curved boundaries can be clipped with
methods similar to line and polygon clipping.
– Curve clipping requires more processing as it
involve non linear equations.
– Bounding Rectangles are used to test for overlap
with rectangular clip window.

* Computer Graphics 61
Curve Clipping
– If bounding rectangle is completely inside the
object/curve is saved.

– If bounding rectangle is completely outside the


object/curve is discarded.

* Computer Graphics 62
Curve Clipping
– If both the above tests fails we use other
computation saving approaches depending upon
type of object
• Circle: Use coordinate extent of individual quadrant,
then octant if required.
• Ellipse: Use coordinate extent of individual quadrant.
• Point: Use point clipping

* Computer Graphics 63

You might also like