SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
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
…

Weitere ähnliche Inhalte

Was ist angesagt?

3D transformation in computer graphics
3D transformation in computer graphics3D transformation in computer graphics
3D transformation in computer graphicsSHIVANI SONI
 
Two dimensional geometric transformation
Two dimensional geometric transformationTwo dimensional geometric transformation
Two dimensional geometric transformationjapan vasani
 
3 d geometric transformations
3 d geometric transformations3 d geometric transformations
3 d geometric transformationsMohd Arif
 
Modeling Transformations
Modeling TransformationsModeling Transformations
Modeling TransformationsTarun Gehlot
 
2 d transformations and homogeneous coordinates
2 d transformations and homogeneous coordinates2 d transformations and homogeneous coordinates
2 d transformations and homogeneous coordinatesTarun Gehlot
 
periodic functions and Fourier series
periodic functions and Fourier seriesperiodic functions and Fourier series
periodic functions and Fourier seriesUmang Gupta
 
Mid point circle algorithm
Mid point circle algorithmMid point circle algorithm
Mid point circle algorithmMani Kanth
 
Transformations computer graphics
Transformations computer graphics Transformations computer graphics
Transformations computer graphics Vikram Halder
 
Two dimentional transform
Two dimentional transformTwo dimentional transform
Two dimentional transformPatel Punit
 
Scaling and shearing
Scaling and shearingScaling and shearing
Scaling and shearingMani Kanth
 
2D transformation (Computer Graphics)
2D transformation (Computer Graphics)2D transformation (Computer Graphics)
2D transformation (Computer Graphics)Timbal Mayank
 
Camera model ‫‬
Camera model ‫‬Camera model ‫‬
Camera model ‫‬Fatima Radi
 
2 d transformations by amit kumar (maimt)
2 d transformations by amit kumar (maimt)2 d transformations by amit kumar (maimt)
2 d transformations by amit kumar (maimt)Amit Kapoor
 
3D Geometric Transformations
3D Geometric Transformations3D Geometric Transformations
3D Geometric TransformationsIshan Parekh
 
3D Transformation
3D Transformation3D Transformation
3D TransformationSwatiHans10
 
Applications Of Laplace Transforms
Applications Of Laplace TransformsApplications Of Laplace Transforms
Applications Of Laplace TransformsKetaki_Pattani
 
Calculus of variations
Calculus of variationsCalculus of variations
Calculus of variationsSolo Hermelin
 

Was ist angesagt? (20)

3D transformation in computer graphics
3D transformation in computer graphics3D transformation in computer graphics
3D transformation in computer graphics
 
Two dimensional geometric transformation
Two dimensional geometric transformationTwo dimensional geometric transformation
Two dimensional geometric transformation
 
3 d geometric transformations
3 d geometric transformations3 d geometric transformations
3 d geometric transformations
 
Windows and viewport
Windows and viewportWindows and viewport
Windows and viewport
 
Modeling Transformations
Modeling TransformationsModeling Transformations
Modeling Transformations
 
2 d transformations and homogeneous coordinates
2 d transformations and homogeneous coordinates2 d transformations and homogeneous coordinates
2 d transformations and homogeneous coordinates
 
periodic functions and Fourier series
periodic functions and Fourier seriesperiodic functions and Fourier series
periodic functions and Fourier series
 
Mid point circle algorithm
Mid point circle algorithmMid point circle algorithm
Mid point circle algorithm
 
Transformations computer graphics
Transformations computer graphics Transformations computer graphics
Transformations computer graphics
 
Two dimentional transform
Two dimentional transformTwo dimentional transform
Two dimentional transform
 
Scaling and shearing
Scaling and shearingScaling and shearing
Scaling and shearing
 
2D transformation (Computer Graphics)
2D transformation (Computer Graphics)2D transformation (Computer Graphics)
2D transformation (Computer Graphics)
 
Camera model ‫‬
Camera model ‫‬Camera model ‫‬
Camera model ‫‬
 
3D Transformation
3D Transformation3D Transformation
3D Transformation
 
point operations in image processing
point operations in image processingpoint operations in image processing
point operations in image processing
 
2 d transformations by amit kumar (maimt)
2 d transformations by amit kumar (maimt)2 d transformations by amit kumar (maimt)
2 d transformations by amit kumar (maimt)
 
3D Geometric Transformations
3D Geometric Transformations3D Geometric Transformations
3D Geometric Transformations
 
3D Transformation
3D Transformation3D Transformation
3D Transformation
 
Applications Of Laplace Transforms
Applications Of Laplace TransformsApplications Of Laplace Transforms
Applications Of Laplace Transforms
 
Calculus of variations
Calculus of variationsCalculus of variations
Calculus of variations
 

Andere mochten auch

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
 
Computer graphics basic transformation
Computer graphics basic transformationComputer graphics basic transformation
Computer graphics basic transformationSelvakumar Gna
 
Two dimensional geometric transformations
Two dimensional geometric transformationsTwo dimensional geometric transformations
Two dimensional geometric transformationsMohammad Sadiq
 
04transformation2d
04transformation2d04transformation2d
04transformation2dKetan Jani
 
2d transformations
2d transformations2d transformations
2d transformationskmrvivek2
 
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
 
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
 

Andere mochten auch (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
 
Computer graphics basic transformation
Computer graphics basic transformationComputer graphics basic transformation
Computer graphics basic transformation
 
Two dimensional geometric transformations
Two dimensional geometric transformationsTwo dimensional geometric transformations
Two dimensional geometric transformations
 
04transformation2d
04transformation2d04transformation2d
04transformation2d
 
2d transformations
2d transformations2d transformations
2d transformations
 
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
 
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
 

Ähnlich wie 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
 
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
 
3 d transformation
3 d transformation3 d transformation
3 d transformationMani Kanth
 
Computer Graphics transformations
Computer Graphics transformationsComputer Graphics transformations
Computer Graphics transformationsswatihans
 
09transformation3d
09transformation3d09transformation3d
09transformation3dKetan Jani
 

Ähnlich wie 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
 
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
 
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
 
transformation 3d
transformation 3dtransformation 3d
transformation 3d
 

Kürzlich hochgeladen

General views of Histopathology and step
General views of Histopathology and stepGeneral views of Histopathology and step
General views of Histopathology and stepobaje godwin sunday
 
CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 11 - GLOBAL SUCCESS - NĂM HỌC 2023-2024 - HK...
CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 11 - GLOBAL SUCCESS - NĂM HỌC 2023-2024 - HK...CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 11 - GLOBAL SUCCESS - NĂM HỌC 2023-2024 - HK...
CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 11 - GLOBAL SUCCESS - NĂM HỌC 2023-2024 - HK...Nguyen Thanh Tu Collection
 
What is the Future of QuickBooks DeskTop?
What is the Future of QuickBooks DeskTop?What is the Future of QuickBooks DeskTop?
What is the Future of QuickBooks DeskTop?TechSoup
 
DUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRA
DUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRADUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRA
DUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRATanmoy Mishra
 
How to Show Error_Warning Messages in Odoo 17
How to Show Error_Warning Messages in Odoo 17How to Show Error_Warning Messages in Odoo 17
How to Show Error_Warning Messages in Odoo 17Celine George
 
How to Solve Singleton Error in the Odoo 17
How to Solve Singleton Error in the  Odoo 17How to Solve Singleton Error in the  Odoo 17
How to Solve Singleton Error in the Odoo 17Celine George
 
The Stolen Bacillus by Herbert George Wells
The Stolen Bacillus by Herbert George WellsThe Stolen Bacillus by Herbert George Wells
The Stolen Bacillus by Herbert George WellsEugene Lysak
 
Diploma in Nursing Admission Test Question Solution 2023.pdf
Diploma in Nursing Admission Test Question Solution 2023.pdfDiploma in Nursing Admission Test Question Solution 2023.pdf
Diploma in Nursing Admission Test Question Solution 2023.pdfMohonDas
 
5 charts on South Africa as a source country for international student recrui...
5 charts on South Africa as a source country for international student recrui...5 charts on South Africa as a source country for international student recrui...
5 charts on South Africa as a source country for international student recrui...CaraSkikne1
 
Presentation on the Basics of Writing. Writing a Paragraph
Presentation on the Basics of Writing. Writing a ParagraphPresentation on the Basics of Writing. Writing a Paragraph
Presentation on the Basics of Writing. Writing a ParagraphNetziValdelomar1
 
Quality Assurance_GOOD LABORATORY PRACTICE
Quality Assurance_GOOD LABORATORY PRACTICEQuality Assurance_GOOD LABORATORY PRACTICE
Quality Assurance_GOOD LABORATORY PRACTICESayali Powar
 
Clinical Pharmacy Introduction to Clinical Pharmacy, Concept of clinical pptx
Clinical Pharmacy  Introduction to Clinical Pharmacy, Concept of clinical pptxClinical Pharmacy  Introduction to Clinical Pharmacy, Concept of clinical pptx
Clinical Pharmacy Introduction to Clinical Pharmacy, Concept of clinical pptxraviapr7
 
How to Add Existing Field in One2Many Tree View in Odoo 17
How to Add Existing Field in One2Many Tree View in Odoo 17How to Add Existing Field in One2Many Tree View in Odoo 17
How to Add Existing Field in One2Many Tree View in Odoo 17Celine George
 
Practical Research 1: Lesson 8 Writing the Thesis Statement.pptx
Practical Research 1: Lesson 8 Writing the Thesis Statement.pptxPractical Research 1: Lesson 8 Writing the Thesis Statement.pptx
Practical Research 1: Lesson 8 Writing the Thesis Statement.pptxKatherine Villaluna
 
How to Use api.constrains ( ) in Odoo 17
How to Use api.constrains ( ) in Odoo 17How to Use api.constrains ( ) in Odoo 17
How to Use api.constrains ( ) in Odoo 17Celine George
 
HED Office Sohayok Exam Question Solution 2023.pdf
HED Office Sohayok Exam Question Solution 2023.pdfHED Office Sohayok Exam Question Solution 2023.pdf
HED Office Sohayok Exam Question Solution 2023.pdfMohonDas
 
The basics of sentences session 10pptx.pptx
The basics of sentences session 10pptx.pptxThe basics of sentences session 10pptx.pptx
The basics of sentences session 10pptx.pptxheathfieldcps1
 
Ultra structure and life cycle of Plasmodium.pptx
Ultra structure and life cycle of Plasmodium.pptxUltra structure and life cycle of Plasmodium.pptx
Ultra structure and life cycle of Plasmodium.pptxDr. Asif Anas
 
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdf
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdfMaximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdf
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdfTechSoup
 
Drug Information Services- DIC and Sources.
Drug Information Services- DIC and Sources.Drug Information Services- DIC and Sources.
Drug Information Services- DIC and Sources.raviapr7
 

Kürzlich hochgeladen (20)

General views of Histopathology and step
General views of Histopathology and stepGeneral views of Histopathology and step
General views of Histopathology and step
 
CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 11 - GLOBAL SUCCESS - NĂM HỌC 2023-2024 - HK...
CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 11 - GLOBAL SUCCESS - NĂM HỌC 2023-2024 - HK...CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 11 - GLOBAL SUCCESS - NĂM HỌC 2023-2024 - HK...
CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 11 - GLOBAL SUCCESS - NĂM HỌC 2023-2024 - HK...
 
What is the Future of QuickBooks DeskTop?
What is the Future of QuickBooks DeskTop?What is the Future of QuickBooks DeskTop?
What is the Future of QuickBooks DeskTop?
 
DUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRA
DUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRADUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRA
DUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRA
 
How to Show Error_Warning Messages in Odoo 17
How to Show Error_Warning Messages in Odoo 17How to Show Error_Warning Messages in Odoo 17
How to Show Error_Warning Messages in Odoo 17
 
How to Solve Singleton Error in the Odoo 17
How to Solve Singleton Error in the  Odoo 17How to Solve Singleton Error in the  Odoo 17
How to Solve Singleton Error in the Odoo 17
 
The Stolen Bacillus by Herbert George Wells
The Stolen Bacillus by Herbert George WellsThe Stolen Bacillus by Herbert George Wells
The Stolen Bacillus by Herbert George Wells
 
Diploma in Nursing Admission Test Question Solution 2023.pdf
Diploma in Nursing Admission Test Question Solution 2023.pdfDiploma in Nursing Admission Test Question Solution 2023.pdf
Diploma in Nursing Admission Test Question Solution 2023.pdf
 
5 charts on South Africa as a source country for international student recrui...
5 charts on South Africa as a source country for international student recrui...5 charts on South Africa as a source country for international student recrui...
5 charts on South Africa as a source country for international student recrui...
 
Presentation on the Basics of Writing. Writing a Paragraph
Presentation on the Basics of Writing. Writing a ParagraphPresentation on the Basics of Writing. Writing a Paragraph
Presentation on the Basics of Writing. Writing a Paragraph
 
Quality Assurance_GOOD LABORATORY PRACTICE
Quality Assurance_GOOD LABORATORY PRACTICEQuality Assurance_GOOD LABORATORY PRACTICE
Quality Assurance_GOOD LABORATORY PRACTICE
 
Clinical Pharmacy Introduction to Clinical Pharmacy, Concept of clinical pptx
Clinical Pharmacy  Introduction to Clinical Pharmacy, Concept of clinical pptxClinical Pharmacy  Introduction to Clinical Pharmacy, Concept of clinical pptx
Clinical Pharmacy Introduction to Clinical Pharmacy, Concept of clinical pptx
 
How to Add Existing Field in One2Many Tree View in Odoo 17
How to Add Existing Field in One2Many Tree View in Odoo 17How to Add Existing Field in One2Many Tree View in Odoo 17
How to Add Existing Field in One2Many Tree View in Odoo 17
 
Practical Research 1: Lesson 8 Writing the Thesis Statement.pptx
Practical Research 1: Lesson 8 Writing the Thesis Statement.pptxPractical Research 1: Lesson 8 Writing the Thesis Statement.pptx
Practical Research 1: Lesson 8 Writing the Thesis Statement.pptx
 
How to Use api.constrains ( ) in Odoo 17
How to Use api.constrains ( ) in Odoo 17How to Use api.constrains ( ) in Odoo 17
How to Use api.constrains ( ) in Odoo 17
 
HED Office Sohayok Exam Question Solution 2023.pdf
HED Office Sohayok Exam Question Solution 2023.pdfHED Office Sohayok Exam Question Solution 2023.pdf
HED Office Sohayok Exam Question Solution 2023.pdf
 
The basics of sentences session 10pptx.pptx
The basics of sentences session 10pptx.pptxThe basics of sentences session 10pptx.pptx
The basics of sentences session 10pptx.pptx
 
Ultra structure and life cycle of Plasmodium.pptx
Ultra structure and life cycle of Plasmodium.pptxUltra structure and life cycle of Plasmodium.pptx
Ultra structure and life cycle of Plasmodium.pptx
 
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdf
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdfMaximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdf
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdf
 
Drug Information Services- DIC and Sources.
Drug Information Services- DIC and Sources.Drug Information Services- DIC and Sources.
Drug Information Services- DIC and Sources.
 

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 …