Cohen-Sutherland Line Clipping Algorithm:
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.
By,
Maruf Abdullah Rion
3. Hosted By
M.M. Arifin Ferdous Joy 131-15-2614
Md. Touhidul Hasan Shadi 132-15-2680
Maruf Abdullah (Rion) 132-15-2703
4. 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.
5. 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
6. 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
7. 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.
8. In this algorithm it divides lines & edges into
2 cases.
1) Trivially Accept and
2) Trivially Reject.
9. 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
11. Question Arrives
We must have a question now??
A
B
Then we will move forward for solve this ……..
12. The algorithm divides the 2D space in 9 regions:
This is also known as ABRL CODE
Figure: 2D space in 9 regions
13. 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.
14. A (0100) B (0010)
AND Operation
Then get the new point C (0000)
15. C (0000) B (0010)
AND Operation
Then get the new point D (0000)
Then we have the final line after clipping is CD
16. Handling Similar Situations
If similar problems arrive then we have to clip
those according to mentioned method.
Some examples of similar situations