Download presentation
Presentation is loading. Please wait.
Published byCandace Roberts Modified over 9 years ago
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 YY XX 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.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.