2D Transformations - Computer Science and...
Transcript of 2D Transformations - Computer Science and...
![Page 1: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/1.jpg)
2D Transformations
x
y x
y
x
y
![Page 2: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/2.jpg)
2D Transformation
Given a 2D object, transformation is to change the object’s Position (translation) Size (scaling) Orientation (rotation) Shapes (shear)
Apply a sequence of matrix multiplication to the object vertices
![Page 3: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/3.jpg)
Point representation
We can use a column vector (a 2x1 matrix) to represent a 2D point x
y A general form of linear transformation can
be written as: x’ = ax + by + c
OR
y’ = dx + ey + f
X’ a b c x Y’ = d e f * y 1 0 0 1 1
![Page 4: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/4.jpg)
Translation
Re-position a point along a straight line Given a point (x,y), and the translation
distance (tx,ty)
The new point: (x’, y’) x’ = x + tx y’ = y + ty (x,y)
(x’,y’)
OR P’ = P + T where P’ = x’ p = x T = tx y’ y ty
tx
ty
![Page 5: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/5.jpg)
3x3 2D Translation Matrix
x’ = x + tx y’ y ty
Use 3 x 1 vector
x’ 1 0 tx x y’ = 0 1 ty * y 1 0 0 1 1
Note that now it becomes a matrix-vector multiplication
![Page 6: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/6.jpg)
Translation
How to translate an object with multiple vertices?
Translate individual vertices
![Page 7: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/7.jpg)
2D Rotation
Default rotation center: Origin (0,0)
θ θ > 0 : Rotate counter clockwise
θ < 0 : Rotate clockwise θ
![Page 8: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/8.jpg)
Rotation
(x,y)
(x’,y’)
θ
(x,y) -> Rotate about the origin by θ
(x’, y’)
How to compute (x’, y’) ? φ
x = r cos (φ) y = r sin (φ)
r
x’ = r cos (φ + θ) y = r sin (φ + θ)
![Page 9: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/9.jpg)
Rotation
(x,y)
(x’,y’)
θ
φ r
x = r cos (φ) y = r sin (φ)
x’ = r cos (φ + θ) y = r sin (φ + θ)
x’ = r cos (φ + θ)
= r cos(φ) cos(θ) – r sin(φ) sin(θ)
= x cos(θ) – y sin(θ)
y’ = r sin (φ + θ)
= r sin(φ) cos(θ) + r cos(φ)sin(θ) = y cos(θ) + x sin(θ)
![Page 10: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/10.jpg)
Rotation
(x,y)
(x’,y’)
θ
φ r
x’ = x cos(θ) – y sin(θ)
y’ = y cos(θ) + x sin(θ)
Matrix form?
x’ cos(θ) -sin(θ) x y’ sin(θ) cos(θ) y
=
3 x 3?
![Page 11: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/11.jpg)
3x3 2D Rotation Matrix
x’ cos(θ) -sin(θ) x y’ sin(θ) cos(θ) y
=
(x,y)
(x’,y’)
θ
φ r
x’ cos(θ) -sin(θ) 0 x y’ sin(θ) cos(θ) 0 y 1 0 0 1 1
=
![Page 12: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/12.jpg)
Rotation
How to rotate an object with multiple vertices?
Rotate individual Vertices
θ
![Page 13: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/13.jpg)
2D Scaling
Scale: Alter the size of an object by a scaling factor (Sx, Sy), i.e.
x’ = x . Sx y’ = y . Sy
x’ Sx 0 x y’ 0 Sy y =
(1,1)
(2,2) Sx = 2, Sy = 2
(2,2)
(4,4)
![Page 14: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/14.jpg)
2D Scaling
(1,1)
(2,2) Sx = 2, Sy = 2
(2,2)
(4,4)
Not only the object size is changed, it also moved!! Usually this is an undesirable effect We will discuss later (soon) how to fix it
![Page 15: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/15.jpg)
3x3 2D Scaling Matrix
x’ Sx 0 x y’ 0 Sy y =
x’ Sx 0 0 x y’ = 0 Sy 0 * y 1 0 0 1 1
![Page 16: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/16.jpg)
Put it all together Translation: x’ x tx y’ y ty
Rotation: x’ cos(θ) -sin(θ) x y’ sin(θ) cos(θ) y
Scaling: x’ Sx 0 x y’ 0 Sy y
= +
= *
= *
![Page 17: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/17.jpg)
Or, 3x3 Matrix representations Translation:
Rotation:
Scaling:
Why use 3x3 matrices?
x’ 1 0 tx x y’ = 0 1 ty * y 1 0 0 1 1
x’ cos(θ) -sin(θ) 0 x y’ sin(θ) cos(θ) 0 * y 1 0 0 1 1
=
x’ Sx 0 0 x y’ = 0 Sy 0 * y 1 0 0 1 1
![Page 18: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/18.jpg)
Why use 3x3 matrices?
So that we can perform all transformations using matrix/vector multiplications
This allows us to pre-multiply all the matrices together
The point (x,y) needs to be represented as (x,y,1) -> this is called Homogeneous coordinates!
![Page 19: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/19.jpg)
Rotation Revisit
The standard rotation matrix is used to rotate about the origin (0,0)
cos(θ) -sin(θ) 0 sin(θ) cos(θ) 0 0 0 1
What if I want to rotate about an arbitrary center?
![Page 20: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/20.jpg)
Arbitrary Rotation Center
To rotate about an arbitrary point P (px,py) by θ: Translate the object so that P will coincide with
the origin: T(-px, -py) Rotate the object: R(θ) Translate the object back: T(px,py)
(px,py)
![Page 21: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/21.jpg)
Arbitrary Rotation Center
Translate the object so that P will coincide with the origin: T(-px, -py)
Rotate the object: R(θ) Translate the object back: T(px,py)
Put in matrix form: T(px,py) R(θ) T(-px, -py) * P
x’ 1 0 px cos(θ) -sin(θ) 0 1 0 -px x y’ = 0 1 py sin(θ) cos(θ) 0 0 1 -py y 1 0 0 1 0 0 1 0 0 1 1
![Page 22: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/22.jpg)
Scaling Revisit
The standard scaling matrix will only anchor at (0,0)
Sx 0 0 0 Sy 0 0 0 1
What if I want to scale about an arbitrary pivot point?
![Page 23: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/23.jpg)
Arbitrary Scaling Pivot
To scale about an arbitrary pivot point P (px,py): Translate the object so that P will coincide with the
origin: T(-px, -py) Rotate the object: S(sx, sy) Translate the object back: T(px,py)
(px,py)
![Page 24: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/24.jpg)
Affine Transformation
Translation, Scaling, Rotation, Shearing are all affine transformation
Affine transformation – transformed point P’ (x’,y’) is a linear combination of the original point P (x,y), i.e.
x’ m11 m12 m13 x y’ = m21 m22 m23 y 1 0 0 1 1
Any 2D affine transformation can be decomposed into a rotation, followed by a scaling, followed by a shearing, and followed by a translation.
Affine matrix = translation x shearing x scaling x rotation
![Page 25: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/25.jpg)
Composing Transformation
Composing Transformation – the process of applying several transformation in succession to form one overall transformation
If we apply transform a point P using M1 matrix first, and then transform using M2, and then M3, then we have:
(M3 x (M2 x (M1 x P ))) = M3 x M2 x M1 x P
M
(pre-multiply)
![Page 26: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/26.jpg)
Composing Transformation
Matrix multiplication is associative M3 x M2 x M1 = (M3 x M2) x M1 = M3 x (M2 x M1)
Transformation products may not be commutative A x B != B x A
Some cases where A x B = B x A A B translation translation scaling scaling rotation rotation uniform scaling rotation
(sx = sy)
![Page 27: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/27.jpg)
Transformation order matters!
Example: rotation and translation are not commutative
Translate (5,0) and then Rotate 60 degree
OR
Rotate 60 degree and then translate (5,0)??
Rotate and then translate !!
![Page 28: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/28.jpg)
Three-Dimensional Graphics
A 3D point (x,y,z) – x,y, and Z coordinates We will still use column vectors to represent
points Homogeneous coordinates of a 3D point (x,y,z,1) Transformation will be performed using 4x4
matrix
T
x
y
z
![Page 29: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/29.jpg)
Right hand coordinate system
X x Y = Z ; Y x Z = X; Z x X = Y;
x
Y
+z
Right hand coordinate system
x
y
z
Left hand coordinate system Not used in this class and Not in OpenGL
![Page 30: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/30.jpg)
3D transformation
Very similar to 2D transformation Translation x’ = x + tx; y’ = y + ty; z’ = z + tz X’ 1 0 0 tx X
Y’ 0 1 0 ty Y Z’ 0 0 1 tz Z 1 0 0 0 1 1
=
homogeneous coordinates
![Page 31: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/31.jpg)
3D transformation
Scaling X’ = X * Sx; Y’ = Y * Sy; Z’ = Z * Sz
X’ Sx 0 0 0 X Y’ 0 Sy 0 0 Y Z’ 0 0 Sz 0 Z 1 0 0 0 1 1
=
![Page 32: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/32.jpg)
3D transformation
3D rotation is done around a rotation axis Fundamental rotations – rotate about x, y, or
z axes Counter-clockwise rotation is referred to as
positive rotation (when you
look down negative axis)
x
y
z +
![Page 33: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/33.jpg)
3D transformation
Rotation about Z – similar to 2D rotation x’ = x cos(θ) – y sin(θ) y’ = x sin(θ) + y cos(θ) z’ = z
x
y
z
+
cos(θ) -sin(θ) 0 0 sin(θ) cos(θ) 0 0 0 0 1 0 0 0 0 1
• OpenGL - glRotatef(θ, 0,0,1)
![Page 34: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/34.jpg)
3D transformation Rotation about y (z -> y, y -> x, x->z) z’ = z cos(θ) – x sin(θ) x’ = z sin(θ) + x cos(θ) y’ = y
z
x
y
+
cos(θ) 0 sin(θ) 0 0 1 0 0 -sin(θ) 0 cos(θ) 0 0 0 0 1
• OpenGL - glRotatef(θ, 0,1,0)
x
y
z +
![Page 35: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/35.jpg)
3D transformation Rotation about x (z -> x, y -> z, x->y) y’ = y cos(θ) – z sin(θ) z’ = y sin(θ) + z cos(θ) x’ = x
y
z
x
+
1 0 0 0 0 cos(θ) -sin(θ) 0 0 sin(θ) cos(θ) 0 0 0 0 1
• OpenGL - glRotatef(θ, 1,0,0)
x
y
z +
![Page 36: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/36.jpg)
You can think of object transformations as moving (transforming) its local coordinate frame
All the transformations are performed relative to the current coordinate frame origin and axes
Composing Transformation
![Page 37: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/37.jpg)
Translate Coordinate Frame
Translate (3,3)?
![Page 38: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/38.jpg)
Translate Coordinate Frame (2)
Translate (3,3)?
![Page 39: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/39.jpg)
Rotate Coordinate Frame
Rotate 30 degree?
30 degree
![Page 40: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/40.jpg)
Scale Coordinate Frame
Scale (0.5,0.5)?
![Page 41: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/41.jpg)
Compose Transformations
(7,9)
45 o
Answer:
1. Translate(7,9) 2. Rotate 45 3. Scale (2,2)
Transformations?
![Page 42: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/42.jpg)
Another example
(5,5)
60 o
How do you transform from C1 to C2?
Translate (5,5) and then Rotate (60)
OR
Rotate (60) and then Translate (5,5) ???
Answer: Translate(5,5) and then Rotate (60)
C1
C2
![Page 43: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/43.jpg)
Another example (cont’d)
60 o
If you Rotate(60) and then Translate(5,5) …
60 o
5 5
C1 C2
You will be translated (5,5) relative to C2!!
![Page 44: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/44.jpg)
Transform Objects
What does moving coordinate frames have anything to do with object transformation? You can view transformation as to tie the
object to a local coordinate frame and move that coordinate frame
![Page 45: 2D Transformations - Computer Science and Engineeringweb.cse.ohio-state.edu/~shen.94/681/Site/Slides_files/transformation_review.pdf · Composing Transformation Composing Transformation](https://reader030.fdocuments.us/reader030/viewer/2022040315/5e1962038a5bbd7c79144c01/html5/thumbnails/45.jpg)
Compose transformation
C1 M2
(c,d)
C3
c d
(c,d)
M1
C2
(c,d)
Multiply the matrix from left to right
M1 (move C1 to C2) M2 (move C2 to C3’, without rotation) M3 (rotate C3’ to C3)
P’s final coordinates =
M1 x M2 x M3 x P