Download - Cohen-Sutherland Line Clipping Algorithm
WELCOME TO OUR PRESENTATION
Group 3
Cohen-Sutherland Line Clipping
Algorithm
Hosted By
M.M. Arifin Ferdous Joy 131-15-2614
Md. Touhidul Hasan Shadi 132-15-2680
Maruf Abdullah (Rion) 132-15-2703
Introduction
When drawing a 2D line on screen, it might happen that one or both of the endpoints are outside the screen while a part of the line should still be visible. In that case, an efficient algorithm is needed to find two new endpoints that are on the edges on the screen, so that the part of the line that's visible can now be drawn. This way, all those points of the line outside the screen are clipped away and you don't need to waste any execution time on them.
A good clipping algorithm is the Cohen-Sutherland algorithm for this solution.
Here are a few cases, where the black rectangle represents the screen, in red are the old endpoints, and in blue the ones after clipping:
Case A: Both end-points are inside the screen, so no clipping needed.
CASE A
Case B: One end-point outside the screen, that one had to be clipped.
Case C: both endpoint are outside the screen, and no part of the line is visible, don't draw it at all.
Case D: both endpoint are outside the screen, and a part of the line is visible, clip both endpoints and draw it.
CASE B CASE C CASE D
Cohen Sutherland Clipping Algorithm
Now we will learn what is Cohen Sutherland Clipping Algorithm and how it works.
This algorithm clips a line to the clipping rectangle. It concerns itself with performing the simple cases quickly.
In this algorithm it divides lines & edges into 2 cases.
1) Trivially Accept and2) Trivially Reject.
Conditions of Trivially Accept
Xmin ≤ X ≤ Xmax
Ymin ≤ Y ≤ Ymax
Lines fulfill this conditions then we will mark those lines as trivially accept.
Ymax
Ymin
Xmin Xmax
Conditions of Trivially Reject
X0 < Xmin & X1 < Xmin or Y0 < Ymin & Y1 < Ymin
X0 > Xmax & X1 > Xmax orY0 > Ymax & Y1 > Ymax
Question Arrives
We must have a question now??
A
B
Then we will move forward for solve this ……..
The algorithm divides the 2D space in 9 regions:
This is also known as ABRL CODE
Figure: 2D space in 9 regions
The center region is the screen or Window Position (0000). If the region is above the screen, the first bit is 1. If the region is below the screen, the second bit is 1. If the region is to the right of the screen, the third bit is 1. If the region is to the left of the screen, the fourth bit is 1.
A (0100) B (0010)
AND Operation
Then get the new point C (0000)
C (0000) B (0010)
AND Operation
Then get the new point D (0000)
Then we have the final line after clipping is CD
Handling Similar Situations
If similar problems arrive then we have to clip those according to mentioned method.
Some examples of similar situations
Any Questions??
Thanks a Lot