SlideShare une entreprise Scribd logo
1  sur  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
…

Contenu connexe

Tendances

2 d geometric transformations
2 d geometric transformations2 d geometric transformations
2 d geometric transformationsMohd Arif
 
3D transformation in computer graphics
3D transformation in computer graphics3D transformation in computer graphics
3D transformation in computer graphicsSHIVANI SONI
 
Homogeneous Representation: rotating, shearing
Homogeneous Representation: rotating, shearingHomogeneous Representation: rotating, shearing
Homogeneous Representation: rotating, shearingManthan Kanani
 
Midpoint circle algo
Midpoint circle algoMidpoint circle algo
Midpoint circle algoMohd Arif
 
3D Transformation in Computer Graphics
3D Transformation in Computer Graphics3D Transformation in Computer Graphics
3D Transformation in Computer Graphicssabbirantor
 
2 d transformations and homogeneous coordinates
2 d transformations and homogeneous coordinates2 d transformations and homogeneous coordinates
2 d transformations and homogeneous coordinatesTarun Gehlot
 
3 d transformation
3 d transformation3 d transformation
3 d transformationMani Kanth
 
3D Geometric Transformations
3D Geometric Transformations3D Geometric Transformations
3D Geometric TransformationsIshan Parekh
 
2D transformation (Computer Graphics)
2D transformation (Computer Graphics)2D transformation (Computer Graphics)
2D transformation (Computer Graphics)Timbal Mayank
 
Composite transformations
Composite transformationsComposite transformations
Composite transformationsMohd Arif
 
2D- Transformation
2D- Transformation2D- Transformation
2D- Transformationnehrurevathy
 
Clipping computer graphics
Clipping  computer graphicsClipping  computer graphics
Clipping computer graphicsShaishavShah8
 
3D Transformation
3D Transformation3D Transformation
3D TransformationSwatiHans10
 

Tendances (20)

2 d geometric transformations
2 d geometric transformations2 d geometric transformations
2 d geometric transformations
 
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)
 
3D transformation in computer graphics
3D transformation in computer graphics3D transformation in computer graphics
3D transformation in computer graphics
 
BRESENHAM’S LINE DRAWING ALGORITHM
BRESENHAM’S  LINE DRAWING ALGORITHMBRESENHAM’S  LINE DRAWING ALGORITHM
BRESENHAM’S LINE DRAWING ALGORITHM
 
Homogeneous Representation: rotating, shearing
Homogeneous Representation: rotating, shearingHomogeneous Representation: rotating, shearing
Homogeneous Representation: rotating, shearing
 
Midpoint circle algo
Midpoint circle algoMidpoint circle algo
Midpoint circle algo
 
Bresenham circle
Bresenham circleBresenham circle
Bresenham circle
 
3D Transformation in Computer Graphics
3D Transformation in Computer Graphics3D Transformation in Computer Graphics
3D Transformation in Computer Graphics
 
2 d transformations and homogeneous coordinates
2 d transformations and homogeneous coordinates2 d transformations and homogeneous coordinates
2 d transformations and homogeneous coordinates
 
Dda algorithm
Dda algorithmDda algorithm
Dda algorithm
 
3D Transformation
3D Transformation3D Transformation
3D Transformation
 
3 d transformation
3 d transformation3 d transformation
3 d transformation
 
3D Geometric Transformations
3D Geometric Transformations3D Geometric Transformations
3D Geometric Transformations
 
2D transformation (Computer Graphics)
2D transformation (Computer Graphics)2D transformation (Computer Graphics)
2D transformation (Computer Graphics)
 
3D Transformation
3D Transformation 3D Transformation
3D Transformation
 
Composite transformations
Composite transformationsComposite transformations
Composite transformations
 
Computer graphics
Computer graphicsComputer graphics
Computer graphics
 
2D- Transformation
2D- Transformation2D- Transformation
2D- Transformation
 
Clipping computer graphics
Clipping  computer graphicsClipping  computer graphics
Clipping computer graphics
 
3D Transformation
3D Transformation3D Transformation
3D Transformation
 

En vedette

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
 
Geometric transformation 2d chapter 5
Geometric transformation 2d   chapter 5Geometric transformation 2d   chapter 5
Geometric transformation 2d chapter 5geethawilliam
 
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
 
04transformation2d
04transformation2d04transformation2d
04transformation2dKetan Jani
 
2d transformations
2d transformations2d transformations
2d transformationskmrvivek2
 
Two dimentional transform
Two dimentional transformTwo dimentional transform
Two dimentional transformPatel Punit
 
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
 
Three dimensional transformations
Three dimensional transformationsThree dimensional transformations
Three dimensional transformationsNareek
 

En vedette (20)

Hearn and Baker 2 D transformations
Hearn and Baker 2 D transformations   Hearn and Baker 2 D transformations
Hearn and Baker 2 D transformations
 
Geometric transformation 2d chapter 5
Geometric transformation 2d   chapter 5Geometric transformation 2d   chapter 5
Geometric transformation 2d chapter 5
 
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
 
04transformation2d
04transformation2d04transformation2d
04transformation2d
 
2d transformations
2d transformations2d transformations
2d transformations
 
Two dimentional transform
Two dimentional transformTwo dimentional transform
Two dimentional transform
 
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
 
Three dimensional transformations
Three dimensional transformationsThree dimensional transformations
Three dimensional transformations
 
06 clipping
06 clipping06 clipping
06 clipping
 

Similaire à Transforms UNIt 2

2 d transformation
2 d transformation2 d transformation
2 d transformationAnkit Garg
 
Computer graphics
Computer graphicsComputer graphics
Computer graphicsBala Murali
 
Computer Graphic - Transformations in 2D
Computer Graphic - Transformations in 2DComputer Graphic - Transformations in 2D
Computer Graphic - Transformations in 2D2013901097
 
Two dimensionaltransformations
Two dimensionaltransformationsTwo dimensionaltransformations
Two dimensionaltransformationsNareek
 
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 2SIMONTHOMAS S
 
Modeling Transformations
Modeling TransformationsModeling Transformations
Modeling TransformationsTarun Gehlot
 
Matrix 2 d
Matrix 2 dMatrix 2 d
Matrix 2 dxyz120
 
Geometric transformation cg
Geometric transformation cgGeometric transformation cg
Geometric transformation cgharinipriya1994
 
Computer Graphics Unit 2
Computer Graphics Unit 2Computer Graphics Unit 2
Computer Graphics Unit 2aravindangc
 
10CSL67 CG LAB PROGRAM 4
10CSL67 CG LAB PROGRAM 410CSL67 CG LAB PROGRAM 4
10CSL67 CG LAB PROGRAM 4Vanishree Arun
 
Computer Graphics transformations
Computer Graphics transformationsComputer Graphics transformations
Computer Graphics transformationsswatihans
 
09transformation3d
09transformation3d09transformation3d
09transformation3dKetan Jani
 

Similaire à 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 Graphic - Transformations in 2D
Computer Graphic - Transformations in 2DComputer Graphic - Transformations in 2D
Computer Graphic - Transformations in 2D
 
Computer Graphics - transformations in 2d
Computer Graphics - transformations in 2dComputer Graphics - transformations in 2d
Computer Graphics - transformations in 2d
 
Two dimensionaltransformations
Two dimensionaltransformationsTwo dimensionaltransformations
Two dimensionaltransformations
 
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
 
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
 
Computer Graphics transformations
Computer Graphics transformationsComputer Graphics transformations
Computer Graphics transformations
 
transformation 3d
transformation 3dtransformation 3d
transformation 3d
 
09transformation3d
09transformation3d09transformation3d
09transformation3d
 

Dernier

Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionSafetyChain Software
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentInMediaRes1
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Celine George
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxGaneshChakor2
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...Marc Dusseiller Dusjagr
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
Science 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsScience 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsKarinaGenton
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon AUnboundStockton
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application ) Sakshi Ghasle
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 
MENTAL STATUS EXAMINATION format.docx
MENTAL     STATUS EXAMINATION format.docxMENTAL     STATUS EXAMINATION format.docx
MENTAL STATUS EXAMINATION format.docxPoojaSen20
 
Micromeritics - Fundamental and Derived Properties of Powders
Micromeritics - Fundamental and Derived Properties of PowdersMicromeritics - Fundamental and Derived Properties of Powders
Micromeritics - Fundamental and Derived Properties of PowdersChitralekhaTherkar
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 

Dernier (20)

Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory Inspection
 
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media Component
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptx
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Science 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsScience 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its Characteristics
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon A
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application )
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 
MENTAL STATUS EXAMINATION format.docx
MENTAL     STATUS EXAMINATION format.docxMENTAL     STATUS EXAMINATION format.docx
MENTAL STATUS EXAMINATION format.docx
 
Micromeritics - Fundamental and Derived Properties of Powders
Micromeritics - Fundamental and Derived Properties of PowdersMicromeritics - Fundamental and Derived Properties of Powders
Micromeritics - Fundamental and Derived Properties of Powders
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 

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 …