SlideShare a Scribd company logo
1 of 34
2D Transformations
x
y
x
y
x
y
Prof.M Kumbhkar
Christian Eminiant college
college Indore (mp)
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
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
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
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
Translation
 How to translate an object with multiple
vertices?
Translate individual
vertices
2D Rotation
 Default rotation center: Origin (0,0)
q
q> 0 : Rotate counter clockwise
q< 0 : Rotate clockwise
q
Rotation
(x,y)
(x’,y’)
q
(x,y) -> Rotate about the origin by q
(x’, y’)
How to compute (x’, y’) ?
f
x = r cos (f) y = r sin (f)
r
x’ = r cos (f + q) y = r sin (f + q)
Rotation
(x,y)
(x’,y’)
q
f
r
x = r cos (f) y = r sin (f)
x’ = r cos (f + q) y = r sin (f + q)
x’ = r cos (f + q)
= r cos(f) cos(q) – r sin(f) sin(q)
= x cos(q) – y sin(q)
y’ = r sin (f + q)
= r sin(f) cos(q) + r cos(f)sin(q)
= y cos(q) + x sin(q)
Rotation
(x,y)
(x’,y’)
q
f
r
x’ = x cos(q) – y sin(q)
y’ = y cos(q) + x sin(q)
Matrix form?
x’ cos(q) -sin(q) x
y’ sin(q) cos(q) y
=
3 x 3?
3x3 2D Rotation Matrix
x’ cos(q) -sin(q) x
y’ sin(q) cos(q) y
=
(x,y)
(x’,y’)
q
f
r
x’ cos(q) -sin(q) 0 x
y’ sin(q) cos(q) 0 y
1 0 0 1 1
=
Rotation
 How to rotate an object with multiple
vertices?
Rotate individual
Vertices
q
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)
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
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
Put it all together
 Translation: x’ x tx
y’ y ty
 Rotation: x’ cos(q) -sin(q) x
y’ sin(q) cos(q) y
 Scaling: x’ Sx 0 x
y’ 0 Sy y
= +
= *
= *
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(q) -sin(q) 0 x
y’ sin(q) cos(q) 0 * y
1 0 0 1 1
=
x’ Sx 0 0 x
y’ = 0 Sy 0 * y
1 0 0 1 1
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!
Shearing
 Y coordinates are unaffected, but x cordinates
are translated linearly with y
 That is:
 y’ = y
 x’ = x + y * h
x 1 h 0 x
y = 0 1 0 * y
1 0 0 1 1
Shearing in y
x 1 0 0 x
y = g 1 0 * y
1 0 0 1 1
 A 2D rotation is three shears
 Shearing will not change the area of the object
 Any 2D shearing can be done by a rotation, followed
by a scaling, and followed by a rotation
Interesting Facts:
Rotation Revisit
 The standard rotation matrix is used to
rotate about the origin (0,0)
cos(q) -sin(q) 0
sin(q) cos(q) 0
0 0 1
 What if I want to rotate about an
arbitrary center?
Arbitrary Rotation Center
 To rotate about an arbitrary point P (px,py)
by q:
 Translate the object so that P will coincide with
the origin: T(-px, -py)
 Rotate the object: R(q)
 Translate the object back: T(px,py)
(px,py)
Arbitrary Rotation Center
 Translate the object so that P will coincide with
the origin: T(-px, -py)
 Rotate the object: R(q)
 Translate the object back: T(px,py)
 Put in matrix form: T(px,py) R(q) T(-px, -py) * P
x’ 1 0 px cos(q) -sin(q) 0 1 0 -px x
y’ = 0 1 py sin(q) cos(q) 0 0 1 -py y
1 0 0 1 0 0 1 0 0 1 1
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?
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)
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
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)
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)
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 !!
How OpenGL does it?
 OpenGL’s transformation functions are
meant to be used in 3D
 No problem for 2D though – just ignore
the z dimension
 Translation:
 glTranslatef(d)(tx, ty, tz) ->
glTranslatef(d)tx,ty,0) for 2D
How OpenGL does it?
 Rotation:
 glRotatef(d)(angle, vx, vy, vz) ->
glRotatef(d)(angle, 0,0,1) for 2D
x
y
z
(vx, vy, vz) – rotation axis
x
y
You can imagine z is pointing out
of the slide
OpenGL Transformation Composition
 A global modeling transformation matrix
(GL_MODELVIEW, called it M here)
glMatrixMode(GL_MODELVIEW)
 The user is responsible to reset it if necessary
glLoadIdentity()
-> M = 1 0 0
0 1 0
0 0 1
OpenGL Transformation Composition
 Matrices for performing user-specified
transformations are multiplied to the model view
global matrix
 For example,
1 0 1
glTranslated(1,1 0); M = M x 0 1 1
0 0 1
 All the vertices P defined within glBegin() will first go
through the transformation (modeling
transformation)
P’ = M x P
Transformation Pipeline
Object
Local Coordinates
Object
World Coordinates
Modeling
transformation
…

More Related Content

What's hot

3 d geometric transformations
3 d geometric transformations3 d geometric transformations
3 d geometric transformationsMohd Arif
 
Linear equations and thier use in practical life
Linear equations and thier use in practical lifeLinear equations and thier use in practical life
Linear equations and thier use in practical lifeAbhishekSengar24
 
2D Transformations(Computer Graphics)
2D Transformations(Computer Graphics)2D Transformations(Computer Graphics)
2D Transformations(Computer Graphics)AditiPatni3
 
Computer Graphic - Transformations in 2D
Computer Graphic - Transformations in 2DComputer Graphic - Transformations in 2D
Computer Graphic - Transformations in 2D2013901097
 
3 d scaling and translation in homogeneous coordinates
3 d scaling and translation in homogeneous coordinates3 d scaling and translation in homogeneous coordinates
3 d scaling and translation in homogeneous coordinatesKRIPA SHNAKAR TIWARI
 
2 d transformations and homogeneous coordinates
2 d transformations and homogeneous coordinates2 d transformations and homogeneous coordinates
2 d transformations and homogeneous coordinatesTarun Gehlot
 
Conformal Mapping
Conformal MappingConformal Mapping
Conformal MappingIshtiaq5
 
Hearn and Baker 2 D transformations
Hearn and Baker 2 D transformations   Hearn and Baker 2 D transformations
Hearn and Baker 2 D transformations Taher Barodawala
 
Chapter 3 Output Primitives
Chapter 3 Output PrimitivesChapter 3 Output Primitives
Chapter 3 Output PrimitivesPrathimaBaliga
 
3 d transformation
3 d transformation3 d transformation
3 d transformationPooja Dixit
 
2d-transformation
2d-transformation2d-transformation
2d-transformationPooja Dixit
 
Ellipses drawing algo.
Ellipses drawing algo.Ellipses drawing algo.
Ellipses drawing algo.Mohd Arif
 
Three dimensional transformations
Three dimensional transformationsThree dimensional transformations
Three dimensional transformationsNareek
 
R Programming: Variables & Data Types
R Programming: Variables & Data TypesR Programming: Variables & Data Types
R Programming: Variables & Data TypesRsquared Academy
 

What's hot (20)

3 d geometric transformations
3 d geometric transformations3 d geometric transformations
3 d geometric transformations
 
Linear equations and thier use in practical life
Linear equations and thier use in practical lifeLinear equations and thier use in practical life
Linear equations and thier use in practical life
 
2D Transformations(Computer Graphics)
2D Transformations(Computer Graphics)2D Transformations(Computer Graphics)
2D Transformations(Computer Graphics)
 
Computer Graphic - Transformations in 2D
Computer Graphic - Transformations in 2DComputer Graphic - Transformations in 2D
Computer Graphic - Transformations in 2D
 
3 d scaling and translation in homogeneous coordinates
3 d scaling and translation in homogeneous coordinates3 d scaling and translation in homogeneous coordinates
3 d scaling and translation in homogeneous coordinates
 
2 d transformations and homogeneous coordinates
2 d transformations and homogeneous coordinates2 d transformations and homogeneous coordinates
2 d transformations and homogeneous coordinates
 
What is sparse matrix
What is sparse matrixWhat is sparse matrix
What is sparse matrix
 
3D Transformation
3D Transformation 3D Transformation
3D Transformation
 
2d/3D transformations in computer graphics(Computer graphics Tutorials)
2d/3D transformations in computer graphics(Computer graphics Tutorials)2d/3D transformations in computer graphics(Computer graphics Tutorials)
2d/3D transformations in computer graphics(Computer graphics Tutorials)
 
Conformal Mapping
Conformal MappingConformal Mapping
Conformal Mapping
 
transformation 3d
transformation 3dtransformation 3d
transformation 3d
 
Hearn and Baker 2 D transformations
Hearn and Baker 2 D transformations   Hearn and Baker 2 D transformations
Hearn and Baker 2 D transformations
 
Chapter 3 Output Primitives
Chapter 3 Output PrimitivesChapter 3 Output Primitives
Chapter 3 Output Primitives
 
3 d transformation
3 d transformation3 d transformation
3 d transformation
 
2d-transformation
2d-transformation2d-transformation
2d-transformation
 
BRESENHAM’S LINE DRAWING ALGORITHM
BRESENHAM’S  LINE DRAWING ALGORITHMBRESENHAM’S  LINE DRAWING ALGORITHM
BRESENHAM’S LINE DRAWING ALGORITHM
 
Ellipses drawing algo.
Ellipses drawing algo.Ellipses drawing algo.
Ellipses drawing algo.
 
Double integration
Double integrationDouble integration
Double integration
 
Three dimensional transformations
Three dimensional transformationsThree dimensional transformations
Three dimensional transformations
 
R Programming: Variables & Data Types
R Programming: Variables & Data TypesR Programming: Variables & Data Types
R Programming: Variables & Data Types
 

Viewers also liked

Geometric transformation 2d chapter 5
Geometric transformation 2d   chapter 5Geometric transformation 2d   chapter 5
Geometric transformation 2d chapter 5geethawilliam
 
2 d geometric transformations
2 d geometric transformations2 d geometric transformations
2 d geometric transformationsMohd Arif
 
Notes 2D-Transformation Unit 2 Computer graphics
Notes 2D-Transformation Unit 2 Computer graphicsNotes 2D-Transformation Unit 2 Computer graphics
Notes 2D-Transformation Unit 2 Computer graphicsNANDINI SHARMA
 
Computer graphics basic transformation
Computer graphics basic transformationComputer graphics basic transformation
Computer graphics basic transformationSelvakumar Gna
 
04transformation2d
04transformation2d04transformation2d
04transformation2dKetan Jani
 
2d transformations
2d transformations2d transformations
2d transformationskmrvivek2
 
Two dimentional transform
Two dimentional transformTwo dimentional transform
Two dimentional transformPatel Punit
 
3D transformation in computer graphics
3D transformation in computer graphics3D transformation in computer graphics
3D transformation in computer graphicsSHIVANI SONI
 
Spatial Transformation
Spatial TransformationSpatial Transformation
Spatial TransformationEhsan Hamzei
 
Transformations(scaling rotation translation)
Transformations(scaling rotation translation)Transformations(scaling rotation translation)
Transformations(scaling rotation translation)Arjun Betageri
 
Geometric transformations
Geometric transformationsGeometric transformations
Geometric transformationsBrenda Obando
 
How to Create 3D Mashups by Integrating GIS, CAD, and BIM
How to Create 3D Mashups by Integrating GIS, CAD, and BIMHow to Create 3D Mashups by Integrating GIS, CAD, and BIM
How to Create 3D Mashups by Integrating GIS, CAD, and BIMSafe Software
 
Homogeneous representation
Homogeneous representationHomogeneous representation
Homogeneous representationgosaliya dheirya
 
Two dimensional geometric transformation
Two dimensional geometric transformationTwo dimensional geometric transformation
Two dimensional geometric transformationjapan vasani
 
Cohen and Sutherland Algorithm for 7-8 marks
Cohen and Sutherland Algorithm for 7-8 marksCohen and Sutherland Algorithm for 7-8 marks
Cohen and Sutherland Algorithm for 7-8 marksRehan Khan
 
Supot37255412160
Supot37255412160Supot37255412160
Supot37255412160Ajay Ochani
 
Lect6 transformation2d
Lect6 transformation2dLect6 transformation2d
Lect6 transformation2dBCET
 

Viewers also liked (20)

Geometric transformation 2d chapter 5
Geometric transformation 2d   chapter 5Geometric transformation 2d   chapter 5
Geometric transformation 2d chapter 5
 
2 d geometric transformations
2 d geometric transformations2 d geometric transformations
2 d geometric transformations
 
Notes 2D-Transformation Unit 2 Computer graphics
Notes 2D-Transformation Unit 2 Computer graphicsNotes 2D-Transformation Unit 2 Computer graphics
Notes 2D-Transformation Unit 2 Computer graphics
 
Computer graphics basic transformation
Computer graphics basic transformationComputer graphics basic transformation
Computer graphics basic transformation
 
04transformation2d
04transformation2d04transformation2d
04transformation2d
 
2d transformations
2d transformations2d transformations
2d transformations
 
Two dimentional transform
Two dimentional transformTwo dimentional transform
Two dimentional transform
 
3D transformation in computer graphics
3D transformation in computer graphics3D transformation in computer graphics
3D transformation in computer graphics
 
Spatial Transformation
Spatial TransformationSpatial Transformation
Spatial Transformation
 
Transformations(scaling rotation translation)
Transformations(scaling rotation translation)Transformations(scaling rotation translation)
Transformations(scaling rotation translation)
 
Improper Rotation
Improper RotationImproper Rotation
Improper Rotation
 
Geometric transformations
Geometric transformationsGeometric transformations
Geometric transformations
 
How to Create 3D Mashups by Integrating GIS, CAD, and BIM
How to Create 3D Mashups by Integrating GIS, CAD, and BIMHow to Create 3D Mashups by Integrating GIS, CAD, and BIM
How to Create 3D Mashups by Integrating GIS, CAD, and BIM
 
3 D Graphics
3 D Graphics3 D Graphics
3 D Graphics
 
Homogeneous representation
Homogeneous representationHomogeneous representation
Homogeneous representation
 
Two dimensional geometric transformation
Two dimensional geometric transformationTwo dimensional geometric transformation
Two dimensional geometric transformation
 
Cohen and Sutherland Algorithm for 7-8 marks
Cohen and Sutherland Algorithm for 7-8 marksCohen and Sutherland Algorithm for 7-8 marks
Cohen and Sutherland Algorithm for 7-8 marks
 
Supot37255412160
Supot37255412160Supot37255412160
Supot37255412160
 
Lect6 transformation2d
Lect6 transformation2dLect6 transformation2d
Lect6 transformation2d
 
2D graphics
2D graphics2D graphics
2D graphics
 

Similar to Transforms UNIt 2

Similar to Transforms UNIt 2 (20)

2d transformations
2d transformations2d transformations
2d transformations
 
2 d transformation
2 d transformation2 d transformation
2 d transformation
 
06.Transformation.ppt
06.Transformation.ppt06.Transformation.ppt
06.Transformation.ppt
 
Computer graphics
Computer graphicsComputer graphics
Computer graphics
 
2d transformation
2d transformation2d transformation
2d transformation
 
Computer Graphics - transformations in 2d
Computer Graphics - transformations in 2dComputer Graphics - transformations in 2d
Computer Graphics - transformations in 2d
 
Cs8092 computer graphics and multimedia unit 2
Cs8092 computer graphics and multimedia unit 2Cs8092 computer graphics and multimedia unit 2
Cs8092 computer graphics and multimedia unit 2
 
Modeling Transformations
Modeling TransformationsModeling Transformations
Modeling Transformations
 
Matrix 2 d
Matrix 2 dMatrix 2 d
Matrix 2 d
 
2D-transformation-1.pdf
2D-transformation-1.pdf2D-transformation-1.pdf
2D-transformation-1.pdf
 
2D transformation (Computer Graphics)
2D transformation (Computer Graphics)2D transformation (Computer Graphics)
2D transformation (Computer Graphics)
 
1533 game mathematics
1533 game mathematics1533 game mathematics
1533 game mathematics
 
Geometric transformation cg
Geometric transformation cgGeometric transformation cg
Geometric transformation cg
 
2-D Transformations.pdf
2-D Transformations.pdf2-D Transformations.pdf
2-D Transformations.pdf
 
Computer Graphics Unit 2
Computer Graphics Unit 2Computer Graphics Unit 2
Computer Graphics Unit 2
 
10CSL67 CG LAB PROGRAM 4
10CSL67 CG LAB PROGRAM 410CSL67 CG LAB PROGRAM 4
10CSL67 CG LAB PROGRAM 4
 
3 d transformation
3 d transformation3 d transformation
3 d transformation
 
Computer Graphics transformations
Computer Graphics transformationsComputer Graphics transformations
Computer Graphics transformations
 
09transformation3d
09transformation3d09transformation3d
09transformation3d
 
Matrix 2 d
Matrix 2 dMatrix 2 d
Matrix 2 d
 

Recently uploaded

week 1 cookery 8 fourth - quarter .pptx
week 1 cookery 8  fourth  -  quarter .pptxweek 1 cookery 8  fourth  -  quarter .pptx
week 1 cookery 8 fourth - quarter .pptxJonalynLegaspi2
 
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...Association for Project Management
 
Mental Health Awareness - a toolkit for supporting young minds
Mental Health Awareness - a toolkit for supporting young mindsMental Health Awareness - a toolkit for supporting young minds
Mental Health Awareness - a toolkit for supporting young mindsPooky Knightsmith
 
4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptxmary850239
 
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptxBIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptxSayali Powar
 
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptxDIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptxMichelleTuguinay1
 
4.11.24 Mass Incarceration and the New Jim Crow.pptx
4.11.24 Mass Incarceration and the New Jim Crow.pptx4.11.24 Mass Incarceration and the New Jim Crow.pptx
4.11.24 Mass Incarceration and the New Jim Crow.pptxmary850239
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)lakshayb543
 
Textual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSTextual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSMae Pangan
 
Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1GloryAnnCastre1
 
Measures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped dataMeasures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped dataBabyAnnMotar
 
Using Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea DevelopmentUsing Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea Developmentchesterberbo7
 
How to Fix XML SyntaxError in Odoo the 17
How to Fix XML SyntaxError in Odoo the 17How to Fix XML SyntaxError in Odoo the 17
How to Fix XML SyntaxError in Odoo the 17Celine George
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Seán Kennedy
 
How to Make a Duplicate of Your Odoo 17 Database
How to Make a Duplicate of Your Odoo 17 DatabaseHow to Make a Duplicate of Your Odoo 17 Database
How to Make a Duplicate of Your Odoo 17 DatabaseCeline George
 
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...DhatriParmar
 
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptx
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptxMan or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptx
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptxDhatriParmar
 
ClimART Action | eTwinning Project
ClimART Action    |    eTwinning ProjectClimART Action    |    eTwinning Project
ClimART Action | eTwinning Projectjordimapav
 
Narcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdfNarcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdfPrerana Jadhav
 
MS4 level being good citizen -imperative- (1) (1).pdf
MS4 level   being good citizen -imperative- (1) (1).pdfMS4 level   being good citizen -imperative- (1) (1).pdf
MS4 level being good citizen -imperative- (1) (1).pdfMr Bounab Samir
 

Recently uploaded (20)

week 1 cookery 8 fourth - quarter .pptx
week 1 cookery 8  fourth  -  quarter .pptxweek 1 cookery 8  fourth  -  quarter .pptx
week 1 cookery 8 fourth - quarter .pptx
 
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
 
Mental Health Awareness - a toolkit for supporting young minds
Mental Health Awareness - a toolkit for supporting young mindsMental Health Awareness - a toolkit for supporting young minds
Mental Health Awareness - a toolkit for supporting young minds
 
4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx
 
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptxBIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
 
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptxDIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
 
4.11.24 Mass Incarceration and the New Jim Crow.pptx
4.11.24 Mass Incarceration and the New Jim Crow.pptx4.11.24 Mass Incarceration and the New Jim Crow.pptx
4.11.24 Mass Incarceration and the New Jim Crow.pptx
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
 
Textual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSTextual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHS
 
Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1
 
Measures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped dataMeasures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped data
 
Using Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea DevelopmentUsing Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea Development
 
How to Fix XML SyntaxError in Odoo the 17
How to Fix XML SyntaxError in Odoo the 17How to Fix XML SyntaxError in Odoo the 17
How to Fix XML SyntaxError in Odoo the 17
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...
 
How to Make a Duplicate of Your Odoo 17 Database
How to Make a Duplicate of Your Odoo 17 DatabaseHow to Make a Duplicate of Your Odoo 17 Database
How to Make a Duplicate of Your Odoo 17 Database
 
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
 
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptx
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptxMan or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptx
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptx
 
ClimART Action | eTwinning Project
ClimART Action    |    eTwinning ProjectClimART Action    |    eTwinning Project
ClimART Action | eTwinning Project
 
Narcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdfNarcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdf
 
MS4 level being good citizen -imperative- (1) (1).pdf
MS4 level   being good citizen -imperative- (1) (1).pdfMS4 level   being good citizen -imperative- (1) (1).pdf
MS4 level being good citizen -imperative- (1) (1).pdf
 

Transforms UNIt 2

  • 1. 2D Transformations x y x y x y Prof.M Kumbhkar Christian Eminiant college college Indore (mp)
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. Translation  How to translate an object with multiple vertices? Translate individual vertices
  • 7. 2D Rotation  Default rotation center: Origin (0,0) q q> 0 : Rotate counter clockwise q< 0 : Rotate clockwise q
  • 8. Rotation (x,y) (x’,y’) q (x,y) -> Rotate about the origin by q (x’, y’) How to compute (x’, y’) ? f x = r cos (f) y = r sin (f) r x’ = r cos (f + q) y = r sin (f + q)
  • 9. Rotation (x,y) (x’,y’) q f r x = r cos (f) y = r sin (f) x’ = r cos (f + q) y = r sin (f + q) x’ = r cos (f + q) = r cos(f) cos(q) – r sin(f) sin(q) = x cos(q) – y sin(q) y’ = r sin (f + q) = r sin(f) cos(q) + r cos(f)sin(q) = y cos(q) + x sin(q)
  • 10. Rotation (x,y) (x’,y’) q f r x’ = x cos(q) – y sin(q) y’ = y cos(q) + x sin(q) Matrix form? x’ cos(q) -sin(q) x y’ sin(q) cos(q) y = 3 x 3?
  • 11. 3x3 2D Rotation Matrix x’ cos(q) -sin(q) x y’ sin(q) cos(q) y = (x,y) (x’,y’) q f r x’ cos(q) -sin(q) 0 x y’ sin(q) cos(q) 0 y 1 0 0 1 1 =
  • 12. Rotation  How to rotate an object with multiple vertices? Rotate individual Vertices q
  • 13. 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)
  • 14. 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
  • 15. 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
  • 16. Put it all together  Translation: x’ x tx y’ y ty  Rotation: x’ cos(q) -sin(q) x y’ sin(q) cos(q) y  Scaling: x’ Sx 0 x y’ 0 Sy y = + = * = *
  • 17. 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(q) -sin(q) 0 x y’ sin(q) cos(q) 0 * y 1 0 0 1 1 = x’ Sx 0 0 x y’ = 0 Sy 0 * y 1 0 0 1 1
  • 18. 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!
  • 19. Shearing  Y coordinates are unaffected, but x cordinates are translated linearly with y  That is:  y’ = y  x’ = x + y * h x 1 h 0 x y = 0 1 0 * y 1 0 0 1 1
  • 20. Shearing in y x 1 0 0 x y = g 1 0 * y 1 0 0 1 1  A 2D rotation is three shears  Shearing will not change the area of the object  Any 2D shearing can be done by a rotation, followed by a scaling, and followed by a rotation Interesting Facts:
  • 21. Rotation Revisit  The standard rotation matrix is used to rotate about the origin (0,0) cos(q) -sin(q) 0 sin(q) cos(q) 0 0 0 1  What if I want to rotate about an arbitrary center?
  • 22. Arbitrary Rotation Center  To rotate about an arbitrary point P (px,py) by q:  Translate the object so that P will coincide with the origin: T(-px, -py)  Rotate the object: R(q)  Translate the object back: T(px,py) (px,py)
  • 23. Arbitrary Rotation Center  Translate the object so that P will coincide with the origin: T(-px, -py)  Rotate the object: R(q)  Translate the object back: T(px,py)  Put in matrix form: T(px,py) R(q) T(-px, -py) * P x’ 1 0 px cos(q) -sin(q) 0 1 0 -px x y’ = 0 1 py sin(q) cos(q) 0 0 1 -py y 1 0 0 1 0 0 1 0 0 1 1
  • 24. 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?
  • 25. 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)
  • 26. 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
  • 27. 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)
  • 28. 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)
  • 29. 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 !!
  • 30. How OpenGL does it?  OpenGL’s transformation functions are meant to be used in 3D  No problem for 2D though – just ignore the z dimension  Translation:  glTranslatef(d)(tx, ty, tz) -> glTranslatef(d)tx,ty,0) for 2D
  • 31. How OpenGL does it?  Rotation:  glRotatef(d)(angle, vx, vy, vz) -> glRotatef(d)(angle, 0,0,1) for 2D x y z (vx, vy, vz) – rotation axis x y You can imagine z is pointing out of the slide
  • 32. OpenGL Transformation Composition  A global modeling transformation matrix (GL_MODELVIEW, called it M here) glMatrixMode(GL_MODELVIEW)  The user is responsible to reset it if necessary glLoadIdentity() -> M = 1 0 0 0 1 0 0 0 1
  • 33. OpenGL Transformation Composition  Matrices for performing user-specified transformations are multiplied to the model view global matrix  For example, 1 0 1 glTranslated(1,1 0); M = M x 0 1 1 0 0 1  All the vertices P defined within glBegin() will first go through the transformation (modeling transformation) P’ = M x P
  • 34. Transformation Pipeline Object Local Coordinates Object World Coordinates Modeling transformation …