Computer Graphics: 2D Transformations

Slides:



Advertisements
Similar presentations
Numbers Treasure Hunt Following each question, click on the answer. If correct, the next page will load with a graphic first – these can be used to check.
Advertisements

2 Casa 15m Perspectiva Lateral Izquierda.
1 A B C
Scenario: EOT/EOT-R/COT Resident admitted March 10th Admitted for PT and OT following knee replacement for patient with CHF, COPD, shortness of breath.
Computer Graphics: 3D Transformations
Variations of the Turing Machine
Angstrom Care 培苗社 Quadratic Equation II
AP STUDY SESSION 2.
1
Copyright © 2003 Pearson Education, Inc. Slide 1 Computer Systems Organization & Architecture Chapters 8-12 John D. Carpinelli.
Copyright © 2011, Elsevier Inc. All rights reserved. Chapter 6 Author: Julia Richards and R. Scott Hawley.
Author: Julia Richards and R. Scott Hawley
Properties Use, share, or modify this drill on mathematic properties. There is too much material for a single class, so you’ll have to select for your.
1 Special Angle Values. 2 Directions A slide will appear showing a trig function with a special angle. Say the value aloud before the computer can answer.
David Burdett May 11, 2004 Package Binding for WS CDL.
Local Customization Chapter 2. Local Customization 2-2 Objectives Customization Considerations Types of Data Elements Location for Locally Defined Data.
CALENDAR.
1 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt BlendsDigraphsShort.
1 Click here to End Presentation Software: Installation and Updates Internet Download CD release NACIS Updates.
Break Time Remaining 10:00.
Factoring Quadratics — ax² + bx + c Topic
Turing Machines.
Table 12.1: Cash Flows to a Cash and Carry Trading Strategy.
PP Test Review Sections 6-1 to 6-6
1 The Blue Café by Chris Rea My world is miles of endless roads.
Bright Futures Guidelines Priorities and Screening Tables
Bellwork Do the following problem on a ½ sheet of paper and turn in.
1 The Royal Doulton Company The Royal Doulton Company is an English company producing tableware and collectables, dating to Operating originally.
Exarte Bezoek aan de Mediacampus Bachelor in de grafische en digitale media April 2014.
TESOL International Convention Presentation- ESL Instruction: Developing Your Skills to Become a Master Conductor by Beth Clifton Crumpler by.
Computer vision: models, learning and inference
Sample Service Screenshots Enterprise Cloud Service 11.3.
Copyright © 2012, Elsevier Inc. All rights Reserved. 1 Chapter 7 Modeling Structure with Blocks.
1 RA III - Regional Training Seminar on CLIMAT&CLIMAT TEMP Reporting Buenos Aires, Argentina, 25 – 27 October 2006 Status of observing programmes in RA.
Basel-ICU-Journal Challenge18/20/ Basel-ICU-Journal Challenge8/20/2014.
1..
Adding Up In Chunks.
MaK_Full ahead loaded 1 Alarm Page Directory (F11)
1 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt Synthetic.
Artificial Intelligence
6.4 Best Approximation; Least Squares
: 3 00.
5 minutes.
1 hi at no doifpi me be go we of at be do go hi if me no of pi we Inorder Traversal Inorder traversal. n Visit the left subtree. n Visit the node. n Visit.
Speak Up for Safety Dr. Susan Strauss Harassment & Bullying Consultant November 9, 2012.
1 Titre de la diapositive SDMO Industries – Training Département MICS KERYS 09- MICS KERYS – WEBSITE.
Essential Cell Biology
Converting a Fraction to %
Numerical Analysis 1 EE, NCKU Tien-Hao Chang (Darby Chang)
Clock will move after 1 minute
PSSA Preparation.
Immunobiology: The Immune System in Health & Disease Sixth Edition
Physics for Scientists & Engineers, 3rd Edition
Energy Generation in Mitochondria and Chlorplasts
Select a time to count down from the clock above
Copyright Tim Morris/St Stephen's School
1.step PMIT start + initial project data input Concept Concept.
9. Two Functions of Two Random Variables
1 Dr. Scott Schaefer Least Squares Curves, Rational Representations, Splines and Continuity.
COMPUTER GRAPHICS 2D TRANSFORMATIONS.
CS 4731: Computer Graphics Lecture 7: Introduction to Transforms, 2D transforms Emmanuel Agu.
1 CSCE 441 Computer Graphics: 2D Transformations Jinxiang Chai.
2D Transformations x y x y x y. 2D Transformation Given a 2D object, transformation is to change the object’s Position (translation) Size (scaling) Orientation.
2D Transformations Unit - 3. Why Transformations? In graphics, once we have an object described, transformations are used to move that object, scale it.
Transformation of Graphics
2D Transformation of Graphics
CSCE 441 Computer Graphics: 2D Transformations
2D Transformations y y x x y x.
Presentation transcript:

Computer Graphics: 2D Transformations Kocaeli Universitesity Computer Engineering Department Fall 2011 Need to include coordinate transform and hierarchical modeling

Geometric Transformation What is geometric transformation? Operations that are applied to the geometric description of an object to change its position, orientation, or size are called geometric transformations

2D Transformations y y x x y x

2D Transformations Applications: y y x x y x Animation Image/object manipulation Viewing transformation etc. x y x 4

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 multiplications 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’) ty (x,y) tx OR P’ = P + T where P’ = x’ p = x T = tx y’ y ty

Translation How to translate an object with multiple vertices? Translate individual vertices

2D Rotation Default rotation center: Origin (0,0) > 0 : Rotate counter clockwise q q < 0 : Rotate clockwise

2D Rotation (x,y) -> Rotate about the origin by q (x’, y’) r f How to compute (x’, y’) ?

2D Rotation (x,y) -> Rotate about the origin by q (x’, y’) r f How to compute (x’, y’) ? x = r cos (f) y = r sin (f) x’ = r cos (f + q) y’ = r sin (f + q)

2D Rotation x = r cos (f) y = r sin (f) (x,y) (x’,y’) q x = r cos (f) y = r sin (f) x’ = r cos (f + q) y = r sin (f + q) r f 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)

2D Rotation x’ = x cos(q) – y sin(q) y’ = y cos(q) + x sin(q) r (x,y) (x’,y’) q x’ = x cos(q) – y sin(q) y’ = y cos(q) + x sin(q) r f Matrix form? x’ cos(q) -sin(q) x y’ sin(q) cos(q) y =

2D Rotation How to rotate an object with multiple vertices? q Rotate individual Vertices

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 = (2,2) (4,4) (1,1) (2,2) Sx = 2, Sy = 2

2D Scaling Not only the object size is changed, it also moved!! (2,2) (4,4) (1,1) (2,2) Sx = 2, Sy = 2 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

Scaling facts

Put it all together Translation: Rotation: Scaling:

Homogeneous Coordinates -1 It is well known that many application involves sequences of geometric transformations For example, an animation might require an object to be translated, rotated and scaled at each increment of the motion If you want to first rotates an object, then scales it, you can combine those two transformation to a composite transformation like the following equation

Homogeneous Coordinates -2 However, it will be difficult to deal with the above composite transformation and translation together. Because, translation is not 2 by 2 matrix representation Consider how the matrix representations discussed in the previous sections can be reformulated so that such transformation sequences can be efficiently processed

Homogeneous Coordinates -3 A standard technique for expanding each two-dimensional coordinate position representation (x, y) to three-element representation, called Homogeneous Coordinates, where homogeneous h is a nonzero value such that A convenient choice is simply to set h=1, so each two-dimensional position is then represented with homogeneous coordinate (x,y,1).

Or, 3x3 Matrix Representations Translation: Rotation: Scaling: 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?

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! How to represent a vector (vx,vy)?

Composing Transformation Composing Transformation – the process of applying several transformation in succession to form one overall transformation If we apply transforming a point P using M1 matrix first, and then transforming using M2, and then M3, then we have: (M3 x (M2 x (M1 x P )))

Composing Transformation Composing Transformation – the process of applying several transformation in succession to form one overall transformation If we apply transforming a point P using M1 matrix first, and then transforming 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) 25

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) translation rotation?

Example1: General Two-Dimensional Pivot-Point Rotation (xr,yr) So we can generate a 2D rotation about any other pivot point (x, y) by performing the following sequence of translate-rotate-translate operations BURDAAAAAA

Example1 (Cont) Translate the object so that the pivot-point position is moved to the coordinate origin Rotate the object about the coordinate origin Translate the object so that the pivot point is returned to its original position

Example2: Scaling without translation Translate the object to so that the fixed point coincides with the coordinate origin Scale the object with respect to the coordinate origin Use the inverse of the translation in step (1) to return the object to its original position

Example2 (Cont) (xr,yr) Translate Scale Translate

Some Other Transformations Shearing and Reflections

Shearing Y coordinates are unaffected, but x coordinates 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 Shearing will not change the area of the object x 1 0 0 x y = g 1 0 * y 1 0 0 1 1 Shearing will not change the area of the object Interesting Facts:

Reflection

Reflection

Reflection

Reflection about X-axis

Reflection about X-axis x 1 0 0 x y = 0 -1 0 * y 1 0 0 1 1

Reflection about Y-axis

Reflection about Y-axis x -1 0 0 x y = 0 1 0 * y 1 0 0 1 1

What’s the Transformation Matrix?

What’s the Transformation Matrix? x -1 0 0 x y = 0 -1 0 * y 1 0 0 1 1

More about reflection? Reflection about y=x Reflection about y=-x

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: (px,py)

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) (px,py)

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) (px,py)

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 fixed point P (px,py): (px,py)

Arbitrary Scaling Pivot To scale about an arbitrary fixed point P (px,py): Translate the object so that P will coincide with the origin: T(-px, -py) (px,py)

Arbitrary Scaling Pivot To scale about an arbitrary fixed point P (px,py): Translate the object so that P will coincide with the origin: T(-px, -py) Scale the object: S(sx, sy) (px,py)

Arbitrary Scaling Pivot To scale about an arbitrary fixed point P (px,py): Translate the object so that P will coincide with the origin: T(-px, -py) Scale the object: S(sx, sy) Translate the object back: T(px,py) (px,py)