15
Introduction Introduction Abstract C-S clip V-window1 V-window2 Summary Clipping is an basic operation of computer graphics Classical line clipping algorithms 1)Cohen-sutherland algorithm 2)Midpoint-subdivision algorithm 3)liang-Baskey algorithm Some rules of clipping algoritnm 1)avoid unnecessary intersection calculation 2)quicken the process of intersection calculaiton 3)deal the special intersection quickly and robustly K-window Intersection1 Intersection2 Intersection3 Line types 1 Intersection4 Line types 2 Discussion 1 Discussion 2

Introduction Abstract C-S clip V-window1 V-window2 Summary Clipping is an basic operation of computer graphics Classical line clipping algorithms 1)Cohen-sutherland

Embed Size (px)

Citation preview

Page 1: Introduction Abstract C-S clip V-window1 V-window2 Summary  Clipping is an basic operation of computer graphics  Classical line clipping algorithms 1)Cohen-sutherland

Introduction Introduction

Abstract

C-S clip

V-window1

V-window2

Summary

Clipping is an basic operation of computer graphics

Classical line clipping algorithms

1)Cohen-sutherland algorithm

2)Midpoint-subdivision algorithm

3)liang-Baskey algorithm

Some rules of clipping algoritnm

1)avoid unnecessary intersection calculation

2)quicken the process of intersection calculaiton

3)deal the special intersection

quickly and robustly

K-window

Intersection1

Intersection2

Intersection3

Line types 1

Intersection4

Line types 2

Discussion 1

Discussion 2

Page 2: Introduction Abstract C-S clip V-window1 V-window2 Summary  Clipping is an basic operation of computer graphics  Classical line clipping algorithms 1)Cohen-sutherland

Firstly reject lines as A by Encoding&code checking technique of

Cohen-Sutherland algorithm.

Secondly we construct

a diamond enclosing box

of original box of the original window (Fig1)

called V window to reject another portion of visible lines such as line f.

Lastly we construct a virtual enclosing box of

the original window called K window to identify

all the remaining lines (line e is rejected ) .

The new algorithm consists of three steps as follows

Abstract of the new algorithm

Introduction

Abstract

V-window1

V-window2

Summary

K-window

Intersection1

Intersection2

Intersection3

Line types 1

Intersection4

Line types 2

Discussion 1

Discussion 2

C-S clip

Page 3: Introduction Abstract C-S clip V-window1 V-window2 Summary  Clipping is an basic operation of computer graphics  Classical line clipping algorithms 1)Cohen-sutherland

Cohen-sutherland’s clipping

The traditional Encoding &code technique The two-dimensional plane

is divided into nine

non-overlapping reginons as

Shown in fig2

A four-digit-code is used to

indicate the two endpoints of

the line are located

If code(p1)|code(p2 )=0 /*line is totally visible*/

else if code(p1)&code(p2)!=0/*line is partially visible*/

else /*line is totally unvisible */

Introduction

Abstract

V-window1

V-window2

Summary

K-window

Intersection1

Intersection2

Intersection3

Line types 1

Intersection4

Line types 2

Discussion 1

Discussion 2

C-S clip

Page 4: Introduction Abstract C-S clip V-window1 V-window2 Summary  Clipping is an basic operation of computer graphics  Classical line clipping algorithms 1)Cohen-sutherland

Redundant line clipping with v-window1

New encoding&code by v-window Traditional technique can’t

Reject lines as line f;

A diamond enclosing box of

the original window is

constructed as shown in fig 3

Such window we call it

v-window cuts the plane into nine regions

Each of the regions is also indicated by a four-digit-code as shown in fig 3

Since the v-window is aligned 45°to the X-axis the encoding procedure is simple

Introduction

Abstract

V-window1

V-window2

Summary

K-window

Intersection1

Intersection2

Intersection3

Line types 1

Intersection4

Line types 2

Discussion 1

Discussion 2

C-S clip

Page 5: Introduction Abstract C-S clip V-window1 V-window2 Summary  Clipping is an basic operation of computer graphics  Classical line clipping algorithms 1)Cohen-sutherland

Redundant line clipping with v-window2

The encoding procedure Let the boundary of the original clipping window be left-

(XL),right-(XR),top-(YT),bottom-(YB).

The encoding procedure can be described as follows #define LEFT 1 If(x+y-YB<XL) code=code|LEFT;

#define RIGHT 2 Else if(x+y-YT>XR) code=code|RIGHT;

#define BOTTOM 4 If(y-x+XR<YB) code=code|BOTTOM;

#define TOP 8 Else if(y-x+XL>YT) code=code|TOP;

Code=0; Return code;

model consists of seven layers of services and protocols.

How simple the procedure is!

Introduction

Abstract

V-window1

V-window2

Summary

K-window

Intersection1

Intersection2

Intersection3

Line types 1

Intersection4

Line types 2

Discussion 1

Discussion 2

C-S clip

Page 6: Introduction Abstract C-S clip V-window1 V-window2 Summary  Clipping is an basic operation of computer graphics  Classical line clipping algorithms 1)Cohen-sutherland

Remaining line clipping with K-window

Rejecting of remaining redundant lines Lines such as line e is still

can’t be rejected after the

previous steps;

The virtual window(k-window)

is consturcted which aligns with

direction of the line to be clipped ,as shown in fig4

Now the line e is easily rejected by this means . If(b<b1)||(b>b2) return FALSE; b=Ya-kXa;

/*redundant lines such as line e */ b1=YB-kXR;

Else {… …} b2=YT-kXL;

Here b ,b1,b2 are calculated as following : k=(Ya-Yb)/(Xa-Xb);

now all the redundant lines have been rejected!

Introduction

Abstract

V-window1

V-window2

Summary

K-window

Intersection1

Intersection2

Intersection3

Line types 1

Intersection4

Line types 2

Discussion 1

Discussion 2

C-S clip

Page 7: Introduction Abstract C-S clip V-window1 V-window2 Summary  Clipping is an basic operation of computer graphics  Classical line clipping algorithms 1)Cohen-sutherland

Suppose k isthe slop of the line and

K_WINDOW is the slop of the original

diagonal.

If(k<=K_WINDOW)

The broken lines In Fig5 constitute the

reduced K-Window.

Else

The Broken lines in Fig6 constitute the

reduced K-Window.

By comparing the y_intercept of the line that

of V1 an V2 ,two edges of the reduced

V-window shown in Fig5 or Fig 6.

Fast intersection calculation1

Two cases of lines that intersect with theClipping window

Introduction

Abstract

V-window1

V-window2

Summary

K-window

Intersection1

Intersection2

Intersection3

Line types 1

Intersection4

Line types 2

Discussion 1

Discussion 2

C-S clip

Page 8: Introduction Abstract C-S clip V-window1 V-window2 Summary  Clipping is an basic operation of computer graphics  Classical line clipping algorithms 1)Cohen-sutherland

The Exact edges of the original window that intersect

Fast intersection calculation 2

with the line can be determined as followsIf (b<=b4) line can only intersect with

right edge and the bottom edge(line E2

in Fig5 and Fig6 )

Else if (b>=b3) line can only be intersect with left edge and top edge (line E1 in Fig5

And Fig 6)

Else {if (k<=K_WINDOW) line can only

Intersect with left edge and right edge

(line E3 in Fig 5)

Else {… …}line can only intersect with top

Edge and bottom edge(line E3 in Fig 6)

}

Introduction

Abstract

V-window1

V-window2

Summary

K-window

Intersection1

Intersection2

Intersection3

Line types 1

Intersection4

Line types 2

Discussion 1

Discussion 2

C-S clip

Page 9: Introduction Abstract C-S clip V-window1 V-window2 Summary  Clipping is an basic operation of computer graphics  Classical line clipping algorithms 1)Cohen-sutherland

Here b3 and b4 are y-intercepts of V1 and V2

They are determined as folllows :If(k>=K_WINDOW ) Else {

{b3=b1+YT-YB; b4=b1+YT-YB;

b4=b2+YT-YB;} b3=b2-YT-YB;}

The results of the six cases of intersection

Calculation are listed bellow:

Line E1 of Fig5 and Fig6:

(XL,YT-b2+b),(XL+(b2-b)/k,YT)

Line E2 of Fig5 and Fig6:

(XR,YB+b-b1),(XR-(b-b1)/k,YB)

Line E3 of Fig5:

(XL,YB+b-b3),(XR,YT-b4+b)

Line E3of Fig6:

(XL+(b4-b)/k,YB),(XR-(b-b3)/k,YT)

Fast intersection calculation 3 Introduction

Abstract

V-window1

V-window2

Summary

K-window

Intersection1

Intersection2

Intersection3

Line types 1

Intersection4

Line types 2

Discussion 1

Discussion 2

C-S clip

Page 10: Introduction Abstract C-S clip V-window1 V-window2 Summary  Clipping is an basic operation of computer graphics  Classical line clipping algorithms 1)Cohen-sutherland

Implementation of the new clipping algorithm :

– We implemented the new algorithm on PC and compared its performance than of Cohen-Sutherland algorithm C-S for short .

– Our machine is based on PentiumⅡ 350MHZ ,and the compile is Turbo C 2.0 running on Windows 2000

– Six thousand lines that satisfy the case are clipped

by C-S and our algorithm in seconds.(table1)

Line types are specified as follows

Note that lines perpendicular to X-axis belong to a special subset ,which need separate treating.

Fast intersection calculation4 Introduction

Abstract

V-window1

V-window2

Summary

K-window

Intersection1

Intersection2

Intersection3

Line types 1

Intersection4

Line types 2

Discussion 1

Discussion 2

C-S clip

Page 11: Introduction Abstract C-S clip V-window1 V-window2 Summary  Clipping is an basic operation of computer graphics  Classical line clipping algorithms 1)Cohen-sutherland

Line types1 A1: can only rejected by C-S algorithm after one time of intersection calculation and it can be rejected by V-WINDOW

A2: can only rejected by C-S algorithm after two time of intersection calculation and it can be rejected by V-WINDOW

B1: can only rejected by C-S algorithm after one time of intersection calculation and it can be rejected by k-WINDOW

B2: can only rejected by C-S algorithm after two time of intersection calculation and it can be rejected by k-WINDOW

C1: can only rejected by C-S algorithm after two time of intersection calculation and it can be rejected by reduced k-WINDOW

C2: can only rejected by C-S algorithm after three time of intersection calculation and it can be rejected by reduced k-WINDOW

C3: can only rejected by C-S algorithm after four time of intersection calculation and it can be rejected by reduced k-WINDOW

Introduction

Abstract

V-window1

V-window2

Summary

K-window

Intersection1

Intersection2

Intersection3

Line types 1

Intersection4

Line types 2

Discussion 1

Discussion 2

C-S clip

Page 12: Introduction Abstract C-S clip V-window1 V-window2 Summary  Clipping is an basic operation of computer graphics  Classical line clipping algorithms 1)Cohen-sutherland

Line types2 D: combined lines that are made up of such lines

1) One thousand lines which can be accepted by tranditional Encoding&Code checking technique.

2) one thousand lines which can be rejected by tranditional Encoding&Code checking technique.

3) One thousand lines which can be rejected by V-window.

4) One thousand lines which can be rejected by K-window.

5) One thousand lines with one endpoint inside the clipping

window and the other outside it.

6) One thousand partially visible lines which can be clipped

with reduced k-Window.

Statistics in Table1 Suggests the potential of our new algorithm!

Introduction

Abstract

V-window1

V-window2

Summary

K-window

Intersection1

Intersection2

Intersection3

Line types 1

Intersection4

Line types 2

Discussion 1

Discussion 2

C-S clip

Page 13: Introduction Abstract C-S clip V-window1 V-window2 Summary  Clipping is an basic operation of computer graphics  Classical line clipping algorithms 1)Cohen-sutherland

Discussion of our new algorithm1 How much is the chance for lines to be rejected by the V-window?

Traditional Encodint&code technique

Can reject or accept such lines that

totally in the regions of, ABGL,BCIF,

CDKH,and DAEJ,MNOP.So the ratio

of lines which can be rejected is:

Similarly,V-window rejects lines of four portions trivially ,lines whose two endpoints locate ,respectively ,in the regions of XLM and ESM ,in the regions of QKP and JVP,in the regions of

WIO and THO ,and in the regions of RFN and UGN .examples of such lines are a-d in Fig8 .the ratio of lines within each portion to all lines is :

Introduction

Abstract

V-window1

V-window2

Summary

K-window

Intersection1

Intersection2

Intersection3

Line types 1

Intersection4

Line types 2

Discussion 1

Discussion 2

C-S clip

Page 14: Introduction Abstract C-S clip V-window1 V-window2 Summary  Clipping is an basic operation of computer graphics  Classical line clipping algorithms 1)Cohen-sutherland

Discussion of our new algorithm2 The ratio of lines rejected by V-Window to lines remaining after the first

clipping step can be deduced as follows :

Table 2 list the value of M1 and M2 when t is specified to different values .If t>100,there are nearly a half of lines that can be trivially rejected by V-Window .The greater t is .the larger the ratio M2 will be .Apparently ,V-Window does contribute to the high efficiency of line clipping .

Introduction

Abstract

V-window1

V-window2

Summary

K-window

Intersection1

Intersection2

Intersection3

Line types 1

Intersection4

Line types 2

Discussion 1

Discussion 2

C-S clip

Page 15: Introduction Abstract C-S clip V-window1 V-window2 Summary  Clipping is an basic operation of computer graphics  Classical line clipping algorithms 1)Cohen-sutherland

Summary Line clipping is a fundamental operation of

computer graphics .

In this new algorithm ,we pays more attention

to the efficiency of rejection.

With adaptively constructed V-Window and K-Window ,our algorithm can quickly reject all invisible lines,which may otherwise incur unnecessary intersection calculation in traditional clipping algorithms

Moreover ,the exact edges of the original clipping windows,which intersect with a partially visible line can be easily identified by our algorithm.

Introduction

Abstract

V-window1

V-window2

Summary

K-window

Intersection1

Intersection2

Intersection3

Line types 1

Intersection4

Line types 2

Discussion 1

Discussion 2

C-S clip