Presentation is loading. Please wait.

Presentation is loading. Please wait.

CGPage: 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.

Similar presentations


Presentation on theme: "CGPage: 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."— Presentation transcript:

1 CGPage: 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 (X 1,Y 1 ) (X 2,Y 2 ), or a 2x2 matrix [ ] X 1 Y 1 X 2 Y 2 X Y

2 CGPage: 2 東吳資訊科學 江清水 A polygon is represented by an list of points (X 1,Y 1 ), (X 2,Y 2 ),..... (X n,Y n ) or a n x 2 matrix [ ] For example, a triangle is represent by [ ] X 1 Y 1 : X n Y n X 1 Y 1 X 2 Y 2 X 3 Y 3 X Y

3 CGPage: 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

4 CGPage: 4 東吳資訊科學 江清水 Translation (2,1) Rotation (  /2) counter clock wise about the origin X Y Y X Object Transformation Scale (1/2) about the origin Y X

5 CGPage: 5 東吳資訊科學 江清水 Y X Y X Coordinates system transformation YY XX 1 23 Translation (2,1) Rotation (  /2) counter clock wise about the origin Scale (1/2) about the origin If not described explicitly, transformation always means object transformation

6 CGPage: 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(T x, T y ) X Y (x,y) (x',y') 2D Translations TxTx TyTy 3.3

7 CGPage: 7 東吳資訊科學 江清水 (2) Scaling (about the origin) : S(S x, 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)

8 CGPage: 8 東吳資訊科學 江清水 (3) Rotation (about the origin counterclockwise) : x = R cos  y = R sin  x' = R cos(  R(cos  cos  sin  sin  y' = R sin(  R(sin  cos  cos  sin  So, x ' = xcos  - ysin  y ' = xsin  + ycos  X Y (x,y) (x',y')  

9 CGPage: 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: x 1 = x - a y 1 = y - b 2. Scale to the correct size: x 2 = S x *x 1 y 2 = S y* y 1 3. Translate again to restore the coordinates of (a,b): x 3 = x 2 + a y 3 = y 2 + b (a,b) X Y (x,y)

10 CGPage: 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)?

11 CGPage: 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] [ ] +[T x T y ]=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 S x 0 0 S y cos  sin  -sin  cos 

12 CGPage: 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 where 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= [ ]

13 CGPage: 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 90 o ? 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 B C

14 CGPage: 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 B C X Y (2,2) (2,1) (4,1) A B C X Y (2,2) (2,1) (4,1) A B C X Y (2,2) (2,1) (4,1) A B C

15 CGPage: 15 東吳資訊科學 江清水 (9) scale A by (1,0). (10) scale A by (0,0). (11) rotate A by 0 o. (12) rotate A by 90 o. X Y (2,2) (2,1) (4,1) A B C X Y (2,2) (2,1) (4,1) A B C X Y (2,2) (2,1) (4,1) A B C X Y (2,2) (2,1) (4,1) A B C

16 CGPage: 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(S x,S y ) (3) translate: T(a,b) (a,b) Y (x, y) X 3.5 Composite 2D Transformation

17 CGPage: 17 東吳資訊科學 江清水 Combining the matrix equations: P 3 =P 2 * T (-a,-b)=(P 1 *S(S x, S y ) )*T(a, b) =P*T(-a, -b) *S(S x, S y )*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.


Download ppt "CGPage: 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."

Similar presentations


Ads by Google