Download as pdf or txt
Download as pdf or txt
You are on page 1of 49

Graphics

2D Viewing

Dr. G. Kumaravelan

1 Graphics Lab @ Korea University


Contents
CGVR

 Clipping
 Cohen-Sutherland Line Clipping
 Sutherland-Hodgeman Polygon Clipping
 Text Clipping
 Curve Clipping
 Blanking
 Viewport Transformation
 Scan Conversion
 Summary of Transformation

2 Graphics Lab @ Korea University


Clipping
CGVR

 Avoid Drawing Parts of Primitives Outside


Window
 Window defines part of scene being viewed
 Must draw geometric primitives only inside window

World
Coordinates
3 Graphics Lab @ Korea University
Clipping
CGVR

 Avoid Drawing Parts of Primitives Outside


Window
 Window defines part of scene being viewed
 Must draw geometric primitives only inside window

4 Graphics Lab @ Korea University


Clipping
CGVR

 Avoid Drawing Parts of Primitives Outside


Window
 Points
 Lines
 Polygons
 Circles
 etc.

5 Graphics Lab @ Korea University


Point Clipping
CGVR

 Is Point(x,y) Inside the Clip Window?

wy2
Inside =
(x>=wx1) &&

(x, y) (x<=wx2) &&


(y>=wy1) &&
(y<=wy2);

wy1
wx1 wx2

6 Graphics Lab @ Korea University


Line Clipping
CGVR

 Find the Part of a Line Inside the Clip


Window
P7

P1
P4 P8
P3
P2
P6
P10

P5 P9
Before Clipping
7 Graphics Lab @ Korea University
Line Clipping
CGVR

 Find the Part of a Line Inside the Clip


Window
P’7

P4 P’8
P3

P6

P’5
After Clipping
8 Graphics Lab @ Korea University
Cohen-Sutherland Line
Clipping CGVR

 Use Simple Tests to Classify Easy Cases


First
P7

P1
P4 P8
P3
P2
P6
P10

P5 P9

9 Graphics Lab @ Korea University


Cohen-Sutherland Line
Clipping CGVR

 Classify Some Lines Quickly by AND of Bit Codes


Representing Regions of Two Endpoints (Must Be 0)
1001 P7 0001 0101
Bit 4
P1
P4 P8
1000 P3 0000 0100
P2
P6
P10
Bit 3
1010 P5 0010 P9 0110
Bit 1 Bit 2
10 Graphics Lab @ Korea University
Cohen-Sutherland Line
Clipping CGVR

 Classify Some Lines Quickly by AND of Bit Codes


Representing Regions of Two Endpoints (Must Be 0)
1001 P7 0001 0101
Bit 4
P1
P4 P8
1000 P3 0000 0100
P2
P6
P10
Bit 3
1010 P5 0010 P9 0110
Bit 1 Bit 2
11 Graphics Lab @ Korea University
Cohen-Sutherland Line
Clipping CGVR

 Classify Some Lines Quickly by AND of Bit Codes


Representing Regions of Two Endpoints (Must Be 0)
1001 P7 0001 0101
Bit 4

P4 P8
1000 P3 0000 0100

P6
P10
Bit 3
1010 P5 0010 P9 0110
Bit 1 Bit 2
12 Graphics Lab @ Korea University
Cohen-Sutherland Line
Clipping CGVR

 Compute Intersections with Window Boundary for


Lines That Can’t be Classified Quickly
1001 P7 0001 0101
Bit 4

P4 P8
1000 P3 0000 0100

P6
P10
Bit 3
1010 P5 0010 P9 0110
Bit 1 Bit 2
13 Graphics Lab @ Korea University
Cohen-Sutherland Line
Clipping CGVR

 Compute Intersections with Window Boundary for


Lines That Can’t be Classified Quickly
1001 P7 0001 0101
Bit 4

P4 P8
1000 P3 0000 0100

P6
P10
Bit 3
1010 P5 0010 P9 0110
Bit 1 Bit 2
14 Graphics Lab @ Korea University
Cohen-Sutherland Line
Clipping CGVR

 Compute Intersections with Window Boundary for


Lines That Can’t be Classified Quickly
1001 P7 0001 0101
Bit 4

P4 P8
1000 P3 0000 0100

P6
P10
Bit 3
1010 P’5 0010 0110
P9
Bit 1 Bit 2
15 Graphics Lab @ Korea University
Cohen-Sutherland Line
Clipping CGVR

 Compute Intersections with Window Boundary for


Lines That Can’t be Classified Quickly
1001 P7 0001 0101
Bit 4

P4 P8
1000 P3 0000 0100

P6
P10
Bit 3
1010 P’5 0010 0110
P9
Bit 1 Bit 2
16 Graphics Lab @ Korea University
Cohen-Sutherland Line
Clipping CGVR

 Compute Intersections with Window Boundary for


Lines That Can’t be Classified Quickly
1001 P7 0001 0101
Bit 4

P4 P8
1000 P3 0000 0100

P6
P10
Bit 3
1010 P’5 0010 0110
P9
Bit 1 Bit 2
17 Graphics Lab @ Korea University
Cohen-Sutherland Line
Clipping CGVR

 Compute Intersections with Window Boundary for


Lines That Can’t be Classified Quickly
1001 P7 0001 0101
Bit 4

P4 P8
1000 P3 0000 0100

P6
P10
Bit 3
1010 P’5 0010 0110
P9
Bit 1 Bit 2
18 Graphics Lab @ Korea University
Cohen-Sutherland Line
Clipping CGVR

 Compute Intersections with Window Boundary for


Lines That Can’t be Classified Quickly
1001 0001
P’7 0101
Bit 4

P4 P8
1000 P3 0000 0100

P6
P10
Bit 3
1010 P’5 0010 0110
P9
Bit 1 Bit 2
19 Graphics Lab @ Korea University
Cohen-Sutherland Line
Clipping CGVR

 Compute Intersections with Window Boundary for


Lines That Can’t be Classified Quickly
1001 0001
P’7 0101
Bit 4

P4 P8
1000 P3 0000 0100

P6
P10
Bit 3
1010 P’5 0010 0110
P9
Bit 1 Bit 2
20 Graphics Lab @ Korea University
Cohen-Sutherland Line
Clipping CGVR

 Compute Intersections with Window Boundary for


Lines That Can’t be Classified Quickly
1001 0001
P’7 0101
Bit 4

P4 P’8
1000 P3 0000 0100

P6
P10
Bit 3
1010 P’5 0010 0110
P9
Bit 1 Bit 2
21 Graphics Lab @ Korea University
Cohen-Sutherland Line
Clipping CGVR

 Compute Intersections with Window Boundary for


Lines That Can’t be Classified Quickly
1001 0001
P’7 0101
Bit 4

P4 P’8
1000 P3 0000 0100

P6
P10
Bit 3
1010 P’5 0010 0110
P9
Bit 1 Bit 2
22 Graphics Lab @ Korea University
Cohen-Sutherland Line
Clipping CGVR

 Compute Intersections with Window Boundary for


Lines That Can’t be Classified Quickly
1001 0001
P’7 0101
Bit 4

P4 P’8
1000 P3 0000 0100

P6
P10
Bit 3
1010 P’5 0010 0110
P9
Bit 1 Bit 2
23 Graphics Lab @ Korea University
Cohen-Sutherland Line
Clipping CGVR

 Compute Intersections with Window Boundary for


Lines That Can’t be Classified Quickly
1001 0001
P’7 0101
Bit 4

P4 P’8
1000 P3 0000 0100

P6
P10
Bit 3
1010 P’5 0010 0110
P9
Bit 1 Bit 2
24 Graphics Lab @ Korea University
Cohen-Sutherland Line
Clipping CGVR

 Compute Intersections with Window Boundary for


Lines That Can’t be Classified Quickly
1001 0001
P’7 0101
Bit 4

P4 P’8
1000 P3 0000 0100

P6
P10
Bit 3
1010 P’5 0010 P’90110
Bit 1 Bit 2
25 Graphics Lab @ Korea University
Cohen-Sutherland Line
Clipping CGVR

 Compute Intersections with Window Boundary for


Lines That Can’t be Classified Quickly
1001 0001
P’7 0101
Bit 4

P4 P’8
1000 P3 0000 0100

P6
P10
Bit 3
1010 P’5 0010 P’90110
Bit 1 Bit 2
26 Graphics Lab @ Korea University
Cohen-Sutherland Line
Clipping CGVR

 Compute Intersections with Window Boundary for


Lines That Can’t be Classified Quickly
1001 0001
P’7 0101
Bit 4

P4 P’8
1000 P3 0000 0100

P6
Bit 3
1010 P’5 0010 0110
Bit 1 Bit 2
27 Graphics Lab @ Korea University
Polygon Clipping
CGVR

 Find the Part of a Polygon Inside the Clip


Window?

Before Clipping
28 Graphics Lab @ Korea University
Polygon Clipping
CGVR

 Find the Part of a Polygon Inside the Clip


Window?

After Clipping
29 Graphics Lab @ Korea University
Sutherland-Hodgeman Polygon
Clipping CGVR

 Clip to Each Window Boundary One at a


Time

30 Graphics Lab @ Korea University


Sutherland-Hodgeman Polygon
Clipping CGVR

 Clip to Each Window Boundary One at a


Time

31 Graphics Lab @ Korea University


Sutherland-Hodgeman Polygon
Clipping CGVR

 Clip to Each Window Boundary One at a


Time

32 Graphics Lab @ Korea University


Sutherland-Hodgeman Polygon
Clipping CGVR

 Clip to Each Window Boundary One at a


Time

33 Graphics Lab @ Korea University


Sutherland-Hodgeman Polygon
Clipping CGVR

 Clip to Each Window Boundary One at a


Time

34 Graphics Lab @ Korea University


Clipping to a Boundary
CGVR

 Do Inside Test for Each Point in Sequence,


Insert New Points When Cross Window Boundary,
Remove Points Outside Window Boundary

P2 P1
Window
Boundary Inside

Outside
P3 P5

P4
35 Graphics Lab @ Korea University
Clipping to a Boundary
CGVR

 Do Inside Test for Each Point in Sequence,


Insert New Points When Cross Window Boundary,
Remove Points Outside Window Boundary

P2 P1
Window
Boundary Inside

Outside
P3 P5

P4
36 Graphics Lab @ Korea University
Clipping to a Boundary
CGVR

 Do Inside Test for Each Point in Sequence,


Insert New Points When Cross Window Boundary,
Remove Points Outside Window Boundary

P2 P1
Window
Boundary Inside

Outside
P3 P5

P4
37 Graphics Lab @ Korea University
Clipping to a Boundary
CGVR

 Do Inside Test for Each Point in Sequence,


Insert New Points When Cross Window Boundary,
Remove Points Outside Window Boundary

P2 P1
Window
Boundary Inside

Outside
P3 P5

P4
38 Graphics Lab @ Korea University
Clipping to a Boundary
CGVR

 Do Inside Test for Each Point in Sequence,


Insert New Points When Cross Window Boundary,
Remove Points Outside Window Boundary

P2 P1
Window
Boundary P’ Inside

Outside
P3 P5

P4
39 Graphics Lab @ Korea University
Clipping to a Boundary
CGVR

 Do Inside Test for Each Point in Sequence,


Insert New Points When Cross Window Boundary,
Remove Points Outside Window Boundary

P2 P1
Window
Boundary P’ Inside

Outside
P3 P5

P4
40 Graphics Lab @ Korea University
Clipping to a Boundary
CGVR

 Do Inside Test for Each Point in Sequence,


Insert New Points When Cross Window Boundary,
Remove Points Outside Window Boundary

P2 P1
Window
Boundary P’ Inside

Outside
P3 P5

P4
41 Graphics Lab @ Korea University
Clipping to a Boundary
CGVR

 Do Inside Test for Each Point in Sequence,


Insert New Points When Cross Window Boundary,
Remove Points Outside Window Boundary

P2 P1
Window
Boundary P’ P” Inside

Outside
P3 P5

P4
42 Graphics Lab @ Korea University
Clipping to a Boundary
CGVR

 Do Inside Test for Each Point in Sequence,


Insert New Points When Cross Window Boundary,
Remove Points Outside Window Boundary

P2 P1
Window
Boundary P’ P” Inside

Outside

43 Graphics Lab @ Korea University


2D Rendering Pipeline
CGVR
3D Primitives

2D Primitives

Clip portions of geometric primitives


Clipping residing outside window

Transform the clipped primitives


Viewport Transformation from screen to image coordinates

Fill pixel representing primitives


Scan Conversion in screen coordinates

Image
44 Graphics Lab @ Korea University
Viewport Transformation
CGVR

 Transform 2D Geometric Primitives from


Screen Coordinate System (Projection
Coordinates) to Image Coordinate System
(Device Coordinates)
Screen Image

Viewport

45 Graphics Lab @ Korea University


Window vs. Viewport
CGVR

 Window
 World-coordinate area selected for display
 What is to be viewed
 Viewport
 Area on the display device to which a window is
mapped
 Where it is to be displayed

46 Graphics Lab @ Korea University


Viewport Transformation
CGVR

 Window-to-Viewport Mapping
Window Viewport
wy2 vy2

(wx, wy) (vx, vy)


wy1 vy1
wx1 wx2 vx1 vx2
Screen Coordinates Image Coordinates

vx = vx1 + (wx – wx1) * (vx2 – vx1) / (wx2 – wx1);


vy = vy1 + (wy – wy1) * (vy2 – vy1) / (wy2 – wy1);

47 Graphics Lab @ Korea University


Cont…
CGVR

48 Graphics Lab @ Korea University


Text Clipping
CGVR
 All or nothing text clipping
 All or nothing Character Clipping

49 Graphics Lab @ Korea University

You might also like