0% found this document useful (0 votes)
17 views17 pages

CGV 4.1 - Clipping Points and Lines

Uploaded by

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

CGV 4.1 - Clipping Points and Lines

Uploaded by

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

Clipping points and Lines

By
Prof. Vaibhav P. Vasani
Assistant Professor
Department of Computer Engineering
K. J. Somaiya College of Engineering
Somaiya Vidyavihar University
Point Clipping
• Point clipping is essentially the evaluation of the
following inequalities:

• where Xmin, Xmax, Ymin and Ymax define the clipping


window. A point (x, y) is considered inside the window
when the
inequalities all evaluate to true.
Clipping Lines
• In an OpenGL environment each object is automatically
clipped to the world window using a particular algorithm
Clipping a Line
• A classic line-clipping algorithm ,the Cohen-Sutherland
clipper
Cohen Sutherland Line Clipping
Algorithm
• In the algorithm, first of all, it is detected whether line
lies inside the screen or it is outside the screen. All lines
come under any one of the following categories:
• Visible
• Not Visible
• Clipping Case
• 1. Visible: If a line lies within the window, i.e., both
endpoints of the line lies within the window. A line is
visible and will be displayed as it is.
• Not Visible: If a line lies outside the window it will be invisible and rejected.
Such lines will not display. If any one of the following inequalities is satisfied,
then the line is considered invisible.
• Example:
• Let A (x1,y2) and B (x2,y2) are endpoints of line.
• xmin,xmax are coordinates of the window.
• ymin,ymax are also coordinates of the window.
x1>xmax
x2>xmax
y1>ymax
y2>ymax
x1<xmin
x2<xmin
y1<ymin
y2<ymin
• 3. Clipping Case:
• If the line is neither visible case nor invisible case. It
is considered to be clipped case.
• The category of a line is found based on nine regions
given below. All nine regions are assigned codes.
• Each code is of 4 bits. If both endpoints of the line
have end bits zero, then the line is considered to be
visible.
• The center area is having the code, 0000, i.e., region 5 is
considered a rectangle window.

• Line AB is the visible case


• Line OP is an invisible case
• Line PQ is an invisible line
• Line IJ are clipping candidates
• Line MN are clipping candidate
• Line CD are clipping candidate
Advantage of Cohen Sutherland
Line Clipping
• It calculates end-points very quickly and rejects and
accepts lines quickly.
• It can clip pictures much large than screen size.
Algorithm of Cohen Sutherland
Line Clipping
Step1:Calculate positions of both endpoints of the line
Step2:Perform OR operation on both of these end-points
Step3:If the OR operation gives 0000
Then
line is considered to be visible
else
Perform AND operation on both endpoints
If And ≠ 0000
then the line is invisible
else
And=0000
Line is considered the clipped case.
Algorithm of Cohen Sutherland
Line Clipping
Step4:If a line is clipped case, find an intersection with boundaries of the window
m=(y2-y1 )(x2-x1)
(a) If bit 1 is "1" line intersects with left boundary of rectangle window
y3=y1+m(x-X1)
where X = Xwmin
where Xwminis the minimum value of X co-ordinate of window
(b) If bit 2 is "1" line intersect with right boundary
y3=y1+m(X-X1)
where X = Xwmax
where X more is maximum value of X co-ordinate of the window
(c) If bit 3 is "1" line intersects with bottom boundary
X3=X1+(y-y1)/m
where y = ywmin
ywmin is the minimum value of Y co-ordinate of the window
(d) If bit 4 is "1" line intersects with the top boundary
X3=X1+(y-y1)/m
where y = ywmax
ywmax is the maximum value of Y co-ordinate of the window
Example of Cohen-Sutherland Line
Clipping Algorithm
• Let R be the rectangular
window whose lower
left-hand corner is at L
(-3, 1) and upper right-
hand corner is at R (2,
6). Find the region
codes for the endpoints
in fig:
• The region code for point (x, y) is set according to the scheme
Bit 1 = sign (y-ymax)=sign (y-6) Bit 3 = sign (x-xmax)= sign (x-
2)
Bit 2 = sign (ymin-y)=sign(1-y) Bit 4 = sign (xmin-x)=sign(-3-x)
• Here

• A (-4, 2)→ 0001 F (1, 2)→ 0000


B (-1, 7) → 1000 G (1, -2) →0100
C (-1, 5)→ 0000 H (3, 3) → 0100
D (3, 8) → 1010 I (-4, 7) → 1001
E (-2, 3) → 0000 J (-2, 10) → 1000
• Category1 (visible): EF since the region code for both
endpoints is 0000.
• Category2 (not visible): IJ since (1001) AND (1000)
=1000 (which is not 0000).
• Category 3 (candidate for clipping): AB since (0001)
AND (1000) = 0000, CD since (0000) AND (1010)
=0000, and GH. since (0100) AND (0010) =0000.
• The candidates for clipping are AB, CD, and GH.
• In clipping AB, the code for A is 0001. To push the 1 to 0, we clip against the
boundary line xmin=-3. The resulting intersection point is I1 (-3,3). We clip (do not
display) AI1 and I1 B. The code for I1is 1001. The clipping category for I1 B is 3 since
(0000) AND (1000) is (0000). Now B is outside the window (i.e., its code is 1000), so
we push the 1 to a 0 by clipping against the line y max=6. The resulting intersection is
l2 (-1,6). Thus I2 B is clipped. The code for I2 is 0000. The remaining segment I1 I2 is
displayed since both endpoints lie in the window (i.e., their codes are 0000).
• For clipping CD, we start with D since it is outside the window. Its code is 1010. We
push the first 1 to a 0 by clipping against the line y max=6. The resulting intersection
I3 is (,6),and its code is 0000. Thus I3 D is clipped and the remaining segment CI3 has
both endpoints coded 0000 and so it is displayed.
• For clipping GH, we can start with either G or H since both are outside the window.
The code for G is 0100, and we push the 1 to a 0 by clipping against the line
ymin=1.The resulting intersection point is I4 (2,1) and its code is 0010. We clip GI4 and
work on I4 H. Segment I4 H is not displaying since (0010) AND (0010) =0010.
Thank you

You might also like