GEOMETRIC TRANSFORMATIONS Yingcai Xiao Roadmap to Geometric Transformations

































- Slides: 33

GEOMETRIC TRANSFORMATIONS Yingcai Xiao

Roadmap to Geometric Transformations �Start with 2 D GT �Extend to 3 D GT �Preview mathematics �Express GT in four type of notations ◦ ◦ Algebraic Matrix Logical Visual

Review of Mathematical Preliminaries Mathematical Notations Points: Vectors: directional lines P 1(x 1, y 1) P 0(x 0, y 0)

1. A vector has a direction and a length: Length: |V|=(x 2 + y 2)1/2 A unit vector: |V| = 1 e. g. : � Normalize a vector: 2. Add two vectors 3. Scalar Multiplication

� , 4. Dot product of two vectors scalar V • W V W if = 90 => cos = 0 => V W = 0. if < 90 => cos > 0 => V W > 0. if > 90 => cos < 0 => V W < 0. 5. Normal: a unit vector perpendicular to a surface

. � Lines y = mx+b e. g. : y = x; ax+by+c=0 Let f(x, y) = ax + by + c A point p(xp, yp) is on the line if f(xp, yp) = 0. When b < 0: p(xp, yp) is above the line if f(xp, yp) < 0. p(xp, yp) is below the line if f(xp, yp) > 0. When b > 0: p(xp, yp) is above the line if f(xp, yp) > 0. p(xp, yp) is below the line if f(xp, yp) < 0.

Parametric Form: P(t)=P 0+t(P 1 -P 0); 0 <= t <= 1 P 1(x 1, y 1) P 0(x 0, y 0) P(t)=P 0+t(P 1 -P 0)


� 2 D Transformations � Translate a point The algebraic representation of translation of point P(x, y) by D(dx, dy) is x’= x + dx y’= y + dy Its “matrix” representation is Its logical representation is P’ = P + D Its visual representation is P’ (x’, y’) P(x, y) D(dx, dy)

� To move a shape: translate every vertex of the shape Y Y 10 10 5 5 (4, 5) (7, 5) (10, 1) (7, 1) 0 5 Before Translation 10 X 0 5 10 After Translation X

Scaling (relative to the origin) Scale a point P(x, y) by S(sx, sy) Algebraic: x’=sx* x � y’=sy* y Matrix: Logic: P’ = SP or P’ = S(sx, sy)P Scale a line P 0 P 1 (scale each point) P 0’=SP 0 P 1’=SP 1

� Scale a shape: scale every vertex of the shape. Visual representation Y Y 10 10 5 5 (4, 5) (7, 5) (2, 5/4) (7/2, 5/4) 0 5 X 10 0 Before Scaling Uniform Scaling: 5 After Scaling sx=sy 10 X

Rotate (around the origin) Positive angles are measured counterclockwise from x axis to y axis. � Rotate point (x, y) around the origin Algebraic representation: x’ = x * cos - y * sin y’ = x * sin + y * cos � Matrix representation: Logic representation: P’ = R P

�Visual representation Y Y 10 10 5 5 0 5 X 10 0 5 Before X 10 After Rotate a shape: rotate every vertex of the shape Y Y 10 10 (4. 9, 7. 8) 5 5 (2. 1, 4. 9) (5, 2) 0 (9, 2) 5 10 Before Rotation X 0 5 After Rotation 10 X

Summary Ø Translation: P’ = P + D Ø Scaling: P’ = S P Ø Rotation: P’ = R P � Homogeneous Coordinates: P(x, y, w) (x, y) to (x, y, w) : (x, y, w) to (x, y)

y’= y + dy w’=1 x’= x + dx P’’ = T(dx 2 , dy 2)P’ = T(dx 2 , dy 2) T(dx 1 , dy 1) P = T(dx 2+dx 1, dy 2+dy 1) P

Scaling P’=S(Sx, Sy) P P’’ = S(Sx 2 , Sy 2)P’ = S(Sx 2 , Sy 2)S(Sx 1 , Sy 1) P = S(Sx 2 Sx 1, Sy 2 Sy 1)P

Rotation P’=R( ) P P’’=R( 2)R( 1)P P”=R( 2+ 1)P

�Shear Transformation: SHx(a) and SHy(b) P’=SHx(a) P Shear in x against y by a (or an angle). x’ = x+ay y’ = y w’=1

P’=SHy(b) P Shear in y against x by b (or an angle). x’=x y’=y + bx w’=1.

Y Y Y 10 10 10 5 5 5 0 5 10 Before Shear X 0 5 10 Sheared in x X 0 5 10 Sheared in y X

Rigid-body Transformation: T and R. � change: location, orientation; � not change: size, angle between elements. Affine Transformation: S, SH � change: size, location, angle; � not change: line (parallelism). � Note: uniform scaling is between the two. It changes size but not angle. � So far, our S, R, SH are all around the origin.

�Composition of 2 D Transformation Rotate the house around P 1 For every vertex (P) on the object: P’ = T(P 1)R( )T(-P 1)P y y x y y After translation of P 1 to origin P 1 After rotation x x After translation To P 1

Scale and rotate the house around P 1 and move it to P 2 y y P 1 x Original x P 1 Translate P 1 house y to origin y x x Rotate Scale y P 2 x Translate to final position P 2

�For every vertex (P) on the object: P’ = T(P 2) R( )S(Sx, Sy)T(-P 1)P. �Swap the order of operations: not permitted, except uniform scaling (sx=sy) can be swapped with rotation.

Window-to-Viewport Transformation world-coordinate: inches, feet etc & screen-coordinate: pixels y y Window World coordinates Window x Screen coordinates x y y Viewport 2 Window World coordinates x Viewport 1 x Screen coordinates Window in Window translated world coordinates to origin Maximum range of screen coordinates Window scale to size of viewport Translated by (u, v) to final position

� Matrix Representation of 3 D Transformation y x z Translation: Scaling:

Rotation, around Z-axis: Rotation, around X-axis: Rotation, around Y-axis:

Projection: Project 3 D objects on to a 2 D surface xp P( x, y, z ) x P’(xp, yp, zp) (0, 0, 0) d z Projection Plane (View Plane) z


Foreshortening: The size of the projected object becomes smaller when the object moves away from the eye. P 1 P 2 P’ 1 z P’ 2 Perspective Projection: the projection that has the foreshortening effect.

For computer-aided design (CAD), we can not have foreshortening. A meter long object should always measures to 1 meter regardless where it is. Parallel Projection: d , lines of sight become parallel P 1 0 0 z P 2 View Plan (0, 0, 0)

Summary � 2 D GT �Homogeneous coordinates � 3 D GT �Rigid body transformation �Affine transformation �Perspective Projection & Foreshortening �Parallel Projection
Geometric Transformations Geometric Transformations Translate X X dx
Geometric Transformations Geometric Transformations consist of two basic
3 D Printing Yingcai Xiao 3 D Printing
Game Development Interactive Animation Yingcai Xiao Video Game
XML Data Structures for the Internet Yingcai Xiao
Game Development with Unity 3 D Yingcai Xiao
Picking in Open GL Yingcai Xiao Picking Identifying
Game Engine Development Yingcai Xiao Game Engine Development
3 D Printing Yingcai Xiao 3 D Printing
Artificial Intelligence in Game Development Yingcai Xiao Artificial
EDP Scripting Yingcai Xiao Why do we need
Fundamentals of C Yingcai Xiao 090308 Outline Class
Web Services Programming the Internet Yingcai Xiao What
Windows Programming Overview Yingcai Xiao What is a
Chapter 2 C Yingcai Xiao C References https
Yingcai Xiao Learning Outcomes What did you learn
3 D Printing Yingcai Xiao 3 D Printing
Game Development with Kinect Yingcai Xiao Video Game
SCATTERED DATA VISUALIZATION Yingcai Xiao Scattered Data sample
Game Development Intro to Unreal Engine Yingcai Xiao
Game Development Principles and Practices Dr Yingcai Xiao
Introduction to Game Development Yingcai Xiao Video Game
Windows Programming NET Overview Yingcai Xiao What is
Programming and Debugging in Unity Yingcai Xiao Programming
INTRODUCTION to COMPUTER GRAPHICS Yingcai Xiao Computer Graphics
HTML Web Programming Yingcai Xiao What to learn
C for Unity 3 D Yingcai Xiao Unity
C IDE and Tools Yingcai Xiao Integrated Development
DATA ANALYSIS BASIC STATISTICS XIAO WU XIAO WUYALE
Geometric Transformations Jehee Lee Seoul National University Transformations
Review Transformations CSE 681 Transformations Modeling transformations build
Review Transformations Scale Translate Rotate Combining Transformations Transformations
Review Transformations CSE 681 Transformations Modeling transformations build