transformations n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Transformations PowerPoint Presentation
Download Presentation
Transformations

Loading in 2 Seconds...

play fullscreen
1 / 67

Transformations - PowerPoint PPT Presentation


  • 104 Views
  • Uploaded on

Transformations. 고려대학교 컴퓨터 그래픽스 연구실. Contents. Affine transformations rotation, translation, and scaling Transformations in homogeneous coordinates Concatenation of transformations rotation about a fixed point general rotation instance transformation rotation about an arbitrary axis

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Transformations' - taber


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
transformations

Transformations

고려대학교 컴퓨터 그래픽스 연구실

kucg.korea.ac.kr

contents
Contents
  • Affine transformations
    • rotation, translation, and scaling
  • Transformations in homogeneous coordinates
  • Concatenation of transformations
    • rotation about a fixed point
    • general rotation
    • instance transformation
    • rotation about an arbitrary axis
  • OpenGL transformation matrices
  • Smooth rotation with a virtual trackball

kucg.korea.ac.kr

transformations1

u

v

R

P

T

Q

Transformations
  • Take a point (or vector) and map that point (or vector) into another point (or vector)

4D column matrices

homogeneous

coordinate

transformation function

kucg.korea.ac.kr

affine transformations 1 2
Affine Transformations (1/2)
  • Linearity – linear function
  • Linear transformation
    • transform the representation of a point (or vector) into another representation of a point (or vector)

point

44 matrix

vector

kucg.korea.ac.kr

affine transformations 2 2
Affine Transformations (2/2)
  • Linear transformation (cont’)
    • preserve lines – transform a line into another line

 only transform the endpoints of a line segment

  • Most transformations in CG are affine
    • rotation, translation, scaling, and shear

homogeneous

coordinate

affine transformation

kucg.korea.ac.kr

translation
Translation
  • Operation that displace points by a fixed distance in a given direction
    • displacement vector d

(a) object in

original position

(b) object translated

kucg.korea.ac.kr

rotation 1 2
Rotation (1/2)
  • Simple example of 2D rotation

kucg.korea.ac.kr

rotation 1 21
Rotation (1/2)
  • Simple example of 2D rotation

kucg.korea.ac.kr

rotation 1 22
Rotation (1/2)
  • Simple example of 2D rotation

kucg.korea.ac.kr

rotation 2 2
Rotation (2/2)
  • Needs
    • fixed point – a point is unchanged by the rotation
    • rotation angle – positive rotation (counterclockwise in right hand system)
    • rotation axis in 3D – values on axis are unchanged by the rotation

(a) rotation about a fixed point

(b) 3D rotation

kucg.korea.ac.kr

rigid body transformations
Rigid-Body Transformations
  • Rotation and translation
  • No combination of rotations and translations can alter the shape of object

alter only the object’s location and orientation

affine transformations, but non-rigid body transformations

kucg.korea.ac.kr

scaling 1 2
Scaling (1/2)
  • Make an object bigger or smaller
    • uniform – scaling in all directions
  • Affine non-rigid body transformation
    • affine transformation: translation, rotation, scaling, shear

nonuniform

uniform

kucg.korea.ac.kr

scaling 2 2
Scaling (2/2)
  • Needs
    • fixed point
    • direction to scale
    • scale factor
      • longer (α>1) or smaller (0≤α<1)
  • Reflection – negative scale factor

effect of scale factor

reflection

kucg.korea.ac.kr

transformations in homogeneous coordinates
Transformations in Homogeneous Coordinates
  • Representations in homogeneous coordinates
  • Affine transformation – 44 matrix

kucg.korea.ac.kr

translation1
Translation
  • Point p to p’ by displacing by a distance d

?

translation matrix

kucg.korea.ac.kr

translation2
Translation
  • Point p to p’ by displacing by a distance d

kucg.korea.ac.kr

translation3
Translation
  • Point p to p’ by displacing by a distance d
  • Inverse of a translation matrix

?

kucg.korea.ac.kr

translation4
Translation
  • Point p to p’ by displacing by a distance d
  • Inverse of a translation matrix

kucg.korea.ac.kr

scaling
Scaling
  • Scaling matrix with a fixed point of the origin

?

scaling matrix

kucg.korea.ac.kr

scaling1
Scaling
  • Scaling matrix with a fixed point of the origin

kucg.korea.ac.kr

scaling2
Scaling
  • Scaling matrix with a fixed point of the origin
  • Inverse of a scaling matrix

?

kucg.korea.ac.kr

scaling3
Scaling
  • Scaling matrix with a fixed point of the origin
  • Inverse of a scaling matrix

kucg.korea.ac.kr

rotation 1 23
Rotation (1/2)
  • Rotation with a fixed point at the origin

?

rotation matrix

kucg.korea.ac.kr

rotation 1 24
Rotation (1/2)
  • Rotation with a fixed point at the origin

?

kucg.korea.ac.kr

rotation 1 25
Rotation (1/2)
  • Rotation with a fixed point at the origin

?

kucg.korea.ac.kr

rotation 1 26
Rotation (1/2)
  • Rotation with a fixed point at the origin

kucg.korea.ac.kr

rotation 2 21
Rotation (2/2)
  • Inverse of a rotation matrix

?

kucg.korea.ac.kr

rotation 2 22
Rotation (2/2)
  • Inverse of a rotation matrix

: orthogonal matrix

kucg.korea.ac.kr

shear 1 2
Shear (1/2)
  • One more affine transformation

shear the object in the x direction

?

kucg.korea.ac.kr

shear 1 21
Shear (1/2)
  • One more affine transformation

shear the object in the x direction

kucg.korea.ac.kr

shear 2 2
Shear (2/2)
  • Shear in the x direction

?

shearing matrix

kucg.korea.ac.kr

shear 2 21
Shear (2/2)
  • Shear in the x direction

kucg.korea.ac.kr

shear 2 22
Shear (2/2)
  • Shear in the x direction
  • Inverse of a shearing matrix

?

kucg.korea.ac.kr

shear 2 23
Shear (2/2)
  • Shear in the x direction
  • Inverse of a shearing matrix

kucg.korea.ac.kr

concatenation of transformations

CBA

p

M

q

Concatenation of Transformations
  • Concatenating
    • affine transformations by multiplying together
    • sequences of the basic transformations

 define an arbitrary transformation directly

    • ex) three successive transformations

p

A

B

C

q

kucg.korea.ac.kr

rotation about a fixed point 1 3
Rotation about a Fixed Point (1/3)
  • Fixed point: pf
    • apply Rz() to rotation about a fixed point

rotation of a cube about its center

kucg.korea.ac.kr

rotation about a fixed point 2 3
Rotation about a Fixed Point (2/3)

sequence of transformations

kucg.korea.ac.kr

general rotation 1 2
General Rotation (1/2)
  • Three successive rotations about the three axes

rotation of a cube about the z axis

rotation of a cube about the y axis

?

rotation of a cube about the x axis

kucg.korea.ac.kr

general rotation 2 2
General Rotation (2/2)

kucg.korea.ac.kr

instance transformation 1 2

?

Instance Transformation (1/2)
  • Instance of an object’s prototype
    • occurrence of that object in the scene
  • Instance transformation
    • applying an affine transformation to the prototype to obtain desired size, orientation, and location

instance transformation

kucg.korea.ac.kr

rotation about an arbitrary axis 1 6
Rotation about an Arbitrary Axis (1/6)
  • Needs
    • fixed point: p0
    • rotation angle: θ
    • rotation axis: vector p2-p1

rotation of a cube about an arbitrary axis

kucg.korea.ac.kr

rotation about an arbitrary axis 2 6
Rotation about an Arbitrary Axis (2/6)
  • First transformation is translation T(-p0) and the final one is T(p0)
  • Rotation problem!!!
    • we can get an arbitrary rotation

from three rotations about

individual axes

    • carry out two rotations to align

the axis of rotation with the z

axis

    • rotate by θ about the the z axis

movement of the fixed point to the origin

kucg.korea.ac.kr

rotation about an arbitrary axis 3 6
Rotation about an Arbitrary Axis (3/6)
  • Determine x and y
    • direction angles and cosines

sequence of rotations

direction angles

kucg.korea.ac.kr

rotation about an arbitrary axis 4 6
Rotation about an Arbitrary Axis (4/6)
  • Determine x and y (cont’)
    • projection line segment into plane y=0
      • look at the projection of line segment (before rotation) on the plane x=0

computation of the x rotation

kucg.korea.ac.kr

rotation about an arbitrary axis 5 6
Rotation about an Arbitrary Axis (5/6)
  • Determine x and y (cont’)
    • projection line segment into z axis
      • rotation about y axis
      • caution!!! – clockwise angle

computation of the y rotation

kucg.korea.ac.kr

rotation about an arbitrary axis 6 6
Rotation about an Arbitrary Axis (6/6)
  • Finally concatenate all the matrices
  • Ex) rotate an object by 45 degrees about the line passing through the origin and the point (1,2,3), fixed point is the origin
    • solution – textbook p.195~196

kucg.korea.ac.kr

opengl transformation matrices 1 2
OpenGL Transformation Matrices (1/2)
  • CTM (Current Transformation Matrix)
    • matrix that is applied to any vertex
    • part of the pipeline
    • : replacement
    • : initialization operation:
    • : postmultiplication

vertices

vertices

CTM

kucg.korea.ac.kr

opengl transformation matrices 2 2
OpenGL Transformation Matrices (2/2)
  • Matrix modes
    • model-view and projection matrices
  • Three functions: rotation, translation, scaling

vertices

vertices

model-view

projection

CTM

glRotatef(angle, vx, vy, vz);

glTranslatef(dx, dy, dz);

glScalef(sx, sy, sz);

kucg.korea.ac.kr

example rotation about a fixed point in opengl
Example: Rotation about a Fixed Point in OpenGL
  • Needs
    • fixed point: (4, 5, 6)
    • rotation angle: 45 degrees
    • rotation axis: the line through the origin and the point (1,2,3)

kucg.korea.ac.kr

example rotation about a fixed point in opengl1
Example: Rotation about a Fixed Point in OpenGL
  • Needs
    • fixed point: (4, 5, 6)
    • rotation angle: 45 degrees
    • rotation axis: the line through the origin and the point (1,2,3)

glMatrixMode(GL_MODELVIWE);

glLoadIdentity( );

glTranslatef(4.0, 5.0, 6.0);

glRotatef(45.0, 1.0, 2.0, 3.0);

glTranslatef(-4.0, -5.0, -6.0);

kucg.korea.ac.kr

rotating a cube 1 2
Rotating a Cube (1/2)

glutDisplayFunc(display);

glutIdleFunc(spinCube);

glutMouseFunc(mouse);

void display(void)

{

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glLoadIdentity();

glRotatef(theta[0], 1.0, 0.0, 0.0);

glRotatef(theta[1], 0.0, 1.0, 0.0);

glRotatef(theta[2], 0.0, 0.0, 1.0);

colorcube();

glutSwapBuffers();

}

void mouse(int btn, int state, int x, int y)

{

if(btn==GLUT_LEFT_BUTTON && state==GLUT_DOWN) axis=0;

if(btn==GLUT_MIDDLE_BUTTON && state==GLUT_DOWN) axis=1;

if(btn==GLUT_RIGHT_BUTTON && state==GLUT_DOWN) axis=2;

}

kucg.korea.ac.kr

rotating a cube 2 2
Rotating a Cube (2/2)

void spinCube(void)

{

theta[axis] += 2.0;

if( theta[axis] > 360.0 ) theta[axis] -= 360.0;

glutPostRedisplay();

}

void mykey(char key, int mousex, int mousey)

{

if( key == ‘q’ || key == ‘Q’ ) exit();

}

kucg.korea.ac.kr

rotating a cube 2 21
Rotating a Cube (2/2)

void spinCube(void)

{

theta[axis] += 2.0;

if( theta[axis] > 360.0 ) theta[axis] -= 360.0;

glutPostRedisplay();

}

  • glPushMatrix( ), glPopMatrix( )
    • perform a transformation and then return to the same state as before its execution
      • ex) instance transformation

void mykey(char key, int mousex, int mousey)

{

if( key == ‘q’ || key == ‘Q’ ) exit();

}

glPushMatrix();

glTranslatef(.....);

glRotatef(.....);

glScalef(.....);

/* draw object here */

glPopMatrix();

kucg.korea.ac.kr

virtual trackball 1 3
Virtual Trackball (1/3)
  • Use the mouse position to control rotation about two axes
  • Support continuous rotations of objects

trackball frame

kucg.korea.ac.kr

virtual trackball 2 3
Virtual Trackball (2/3)
  • Rotation with a virtual trackball
    • projection of the trackball position to the plane

kucg.korea.ac.kr

virtual trackball 3 3
Virtual Trackball (3/3)
  • Rotation with a virtual trackball (cont’)
    • determination of the orientation of a plane
    • rotation angle

Quaternions

kucg.korea.ac.kr

complex numbers 1 3

imaginary

axis

z

y

real axis

x

Complex Numbers (1/3)
  • Real part + imaginary part:
  • Addition and subtraction
  • Scalar multiplication
  • Multiplication

kucg.korea.ac.kr

complex numbers 2 3
Complex Numbers (2/3)
  • Imaginary unit:
  • Complex conjugate
    • modulus or absolute value
  • Division

kucg.korea.ac.kr

complex numbers 3 3

Imaginary

axis

z=(x, y)

r

θ

real axis

Complex Numbers (3/3)
  • Representation with polar coordinates
  • Euler’s formula
  • Complex multiplication and division
  • nth roots

kucg.korea.ac.kr

quaternions 1 2
Quaternions (1/2)
  • One real part + three imaginary part
  • Properties:
  • Addition and scalar multiplication

kucg.korea.ac.kr

quaternions 2 2
Quaternions (2/2)
  • Ordered-pair notation
    • scalar ‘s’ + vector “v= (a, b, c)”
  • Addition:
  • Multiplication
  • Magnitude
  • Inverse

kucg.korea.ac.kr

quaternions and 3d rotation
Quaternions and 3D Rotation
  • For a 3D point (α, β, γ)
    • a unit quaternion its conjugate

  • For

Rq is a 3D rotation about (ux, uy, uz) by 2θ

Rotating (α, β, γ)by angle2θabout the axis parallel to(ux, uy, uz)

kucg.korea.ac.kr

rotations with quaternions 1 2
Rotations with Quaternions (1/2)
  • Rotation about any axis
    • set up a unit quaternion (u: unit vector)
    • represent any point position P in quaternion notation (p = (x, y, z))
    • carry out with the quaternion operation (q-1=(s, –v))
    • produce the new quaternion

kucg.korea.ac.kr

rotations with quaternions 2 2
Rotations with Quaternions (2/2)
  • Obtain the rotation matrix by quaternion multiplication
  • Include the translations

kucg.korea.ac.kr

example
Example
  • Rotation about z axis
    • Set the unit quaternion:
    • Substitute a=b=0, c=sin(θ/2) into the matrix:

kucg.korea.ac.kr