2d geometry

17
CG Page: 1 東東東東東東 東東東 3.1 2D Geometry - points and polygon X Y oint in 2D is represented by two real bers (X,Y) e segment is represented by its tw oints (X 1 ,Y 1 ) (X 2 ,Y 2 ), or a 2x2 matrix ] X 1 Y 1 X 2 Y 2 X Y

Upload: muhar-riana

Post on 07-Dec-2015

237 views

Category:

Documents


0 download

DESCRIPTION

geometri

TRANSCRIPT

CG Page: 1 東吳資訊科學 江清水

3.1 2D Geometry - points and polygons

X

Y

A point in 2D is represented by two real numbers (X,Y)

A line segment is represented by its two end points (X1,Y1) (X2,Y2), or a 2x2 matrix

[ ]X1 Y1

X2 Y2

X

Y

CG Page: 2 東吳資訊科學 江清水

A polygon is represented by an list of points (X1,Y1), (X2,Y2), ..... (Xn,Yn) or a

n x 2 matrix [ ]

For example, a triangle is represent by

[ ]

X1 Y1

: :

Xn Yn

X1 Y1

X2 Y2

X3 Y3

X

Y

CG Page: 3 東吳資訊科學 江清水

3.2 Object transformation and Coordinates System transformation

2

1

1 2 8

Y

X

(2,4)

(6,2)(2,2)

Object transformation is different from

the coordinates system transformation

CG Page: 4 東吳資訊科學 江清水

Translation (2,1)

Rotation (/2)counter clock wiseabout the origin

X

Y

Y

X

Object Transformation

Scale (1/2)about the origin

Y

X

CG Page: 5 東吳資訊科學 江清水

Y

X

Y

X

Coordinates system transformationY

X1 2 3

Translation (2,1)

Rotation (/2)counter clock wiseabout the origin

Scale (1/2)about the origin

If not described explicitly, transformation always means object transformation

CG Page: 6 東吳資訊科學 江清水

There are 3 "basic" transformations:

(1) Translation

(2) Scaling

(3) Rotation

A series of transformations can be combined (concatenated) into one.

(1) Translation : T(Tx, Ty)

X

Y

(x,y)

(x',y')

2D Translations

Tx

Ty

3.3

CG Page: 7 東吳資訊科學 江清水

(2) Scaling (about the origin) : S(Sx, S

y)

• What about "Mirror Images"?

• How do we avoid distortion?

• What happens when the scale factor equal to zero?

X

Y

(x,y)

Y

X

(x',y')

S(-2, -1)

CG Page: 8 東吳資訊科學 江清水

(3) Rotation (about the origin

counterclockwise) :

x = R cos y = R sinx' = R cos( R(cos cos sin

sin y' = R sin(R(sin cos cos

sin

So, x ' = xcos - ysiny ' = xsin + ycos

X

Y

(x,y)

(x',y')

CG Page: 9 東吳資訊科學 江清水

Concatenation -- A series of transformations can be combined (concatenated) into one.

Example: scaling about arbitrary point.

1. Translate so that point (a,b)

becomes the temporary origin:

x1 = x - a y1 = y - b

2. Scale to the correct size:

x2 = Sx*x1 y2 = Sy*y1

3. Translate again to restore the coordinates of (a,b):

x3 = x2 + a y3 = y2 + b

(a,b)X

Y(x,y)

CG Page: 10 東吳資訊科學 江清水

Algebraic representations for transformations are very limited:

(1) A special procedure is need for

each basic transformation and

other known concatenated forms.

(2) It is difficult to provide general

transformation capabilities in

algebraic form in the computer.

(3) How can one find the inverse of

a concatenated equation (to

restore the original position, for

example)?

CG Page: 11 東吳資訊科學 江清水

Let the point (x,y) be a row vector

[x y]:x' = ax + by and y' = cx + dy

can be expressed in the matrix equation:

[x' y'] = [x y] * [ ]2x2

Let P' = [x' y'] and P = [x y], this becomes the matrix equation:

P' = P * T where P' =[x' y'] ,

P = [x y] , T =

Consider three basic transformations, can we find a "T" for each?

• What about translations?

X'=X+Tx, Y'=Y+Ty

No, P' =[x' y']=[x y] [ ]+[Tx Ty]=P*T+Q

• What about scaling? X'=Sx*X, Y'=Sy*Y

Yes, P' =[x' y']=[x y] [ ] =P*T

• What about rotation?

x'=xcos-ysin, y'=xsin+ycos

Yes, P' =[x' y']=[x y] [ ]

a c

b d[ ]

1 0

0 1

Sx 0

0 Sy

cos sin-sin cos

CG Page: 12 東吳資訊科學 江清水

3.4 Homogeneous Coordinates

Let the point (x,y) be a row vector [x y 1]:

x' = ax + by + e and y' = cx + dy + f can be expressed in the matrix equation:

[x' y' 1] = [x y 1] [ ]3x3

This becomes the matrix equation P' = P * T wher

e P'=[x' y' 1], P= [x y 1],

T= [ ]Now, can we find a "T" for each transformation?

• What about translations? Yes, T= [ ]• What about scaling? Yes, T= [ ]• What about rotation? Yes, T= [ ]

CG Page: 13 東吳資訊科學 江清水

To check, what should the matrix be if we:

(1) translate by (0,0) ?

P'=P*[ ]=P*[ ]=P

(2) scale by (1,1) ?

P'=P*[ ]=P*[ ]=P

(3) rotate by 0 o ?

P'=P*[ ]=P*[ ]=P

(4) rotate by 90o ?

P'=[x' y' 1]=[x y 1] [ ] =[1 0 1]*[ ]=[0 1 1]

Draw the pictures and find the new vertices of the triangle for the following transformations (See the figure below) :

(x, y) = (1, 0)

(x', y') = (0, 1)

X

Y(2,2)

(2,1)

(4,1)

A

BC

CG Page: 14 東吳資訊科學 江清水

(5) translate A by (2,1).

(6) translate A by (-2,1).

(7) scale A by (2,1).

(8) scale A by (-1,1).

X

Y

(2,2)

(2,1)(4,1)

A

BC

X

Y

(2,2)

(2,1)(4,1)

A

BC

X

Y

(2,2)

(2,1)(4,1)

A

BC

X

Y

(2,2)

(2,1)(4,1)

A

BC

CG Page: 15 東吳資訊科學 江清水

(9) scale A by (1,0).

(10) scale A by (0,0).

(11) rotate A by 0o.

(12) rotate A by 90o .

X

Y

(2,2)

(2,1)(4,1)

A

BC

X

Y

(2,2)

(2,1)(4,1)

A

BC

X

Y

(2,2)

(2,1)(4,1)

A

BC

X

Y

(2,2)

(2,1)(4,1)

A

BC

CG Page: 16 東吳資訊科學 江清水

Concatenation is easy now. Consider

our scaling example:Example: We want to reduce the size or the box,

without changing the position of point (a, b)

Functional form and matrix form for each transformations:

(1) translate: T(-a,-b)

(2) scale : S(Sx,Sy)

(3) translate: T(a,b)

(a,b)

Y(x, y)

X

3.5 Composite 2D Transformation

CG Page: 17 東吳資訊科學 江清水

Combining the matrix equations:

P3 =P2* T (-a,-b)=(P1*S(Sx, Sy) )*T(a, b)

=P*T(-a, -b) *S(Sx, Sy)*T(a, b)

Multiply the matrices :

Now, the matrix equation is :

or, in algebraic form :

Thus, a single 3x3 matrix can represent any combination of basic transformations in a simple form.