Quaternions. Mike Bailey. A Useful Concept: Spherical Linear Interpolation. sin(1 t) sin t

Size: px
Start display at page:

Download "Quaternions. Mike Bailey. A Useful Concept: Spherical Linear Interpolation. sin(1 t) sin t"

Transcription

1 1 Quaternions This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License Mike Bailey mjb@cs.oregonstate.edu Quaternions.pptx A Useful Concept: Spherical Linear Interpolation sin(1 t) sin t Q'( t) P Q sin sin 0. t 1. where: + + sin 1 1

2 A Review of Complex Numbers 3 z x iy r[cos i sin ] re i z z x y x y ( i )( i ) 1 ) 1 1 x 1 (i.e., multiply the r s and add the θ s) i r1e i r e i( r1r e Since we are adding the θ s, we see that complex multiplication is really just rotation by θ if r = 1. Complex conjugate: Complex inverse: * i i x iy z 1 1 e r z re Note: (z)(z*) = r (z)(z -1 ) = 1. If r = 1., then z* = z -1 Quaternion Background 4 Discovered by Sir William Hamilton, 1843, while on a walk in Dublin. Legend says that he was so excited that he took out a knife and carved the equation into the stone of a bridge. Good thing spray-paint hadn t been invented yet Quaternions have 4 elements, one real and three complex: q q q q qqqq qq Q i j k (,,, ) (, ) By definition, 1 3 ii jj kk 1 ij k, jk i, ki j ji k, kj i, ik j 4 ijk 1 And, by definition, we always force Q 1. by making q q q q

3 Quaternion Multiplication 5 p p p p q q q q PQ ( i j k )( i j k ) p0q0 pq 1 1 pq p3q3 p1q0 p0q1 pq3 p3q PQ pq0 p0q p3q1 pq 1 3 p3q0 p0q3 pq 1 pq1 qp 0 p0q p q i j k Performing Rotations with Quaternions 6 A Quaternion can record a rotation transformation by an angle about an axis like this:,, where: q0 cos( ) q sin( ) nˆ Concatenated Quaternion Rotations are handled like this: R (,, )*, ) R 1 s rotation takes effect first, followed by R s A Quaternion can represent a point P like this: P Q(0, p) (0, p, p, p ) x y z A rotated point, P by one rotation is: P = * * A rotated point, P by multiple rotations is: P = 1 * * 1 3

4 Converting from a Quaternion to a Matrix 7 q q q q qq qq qq qq RQ ( ) qq qq q q q q qq qq qq 1 3qq 0 qq 3qq 0 1 q0q1qq3 From the GLM Notes: The Rotation Matrix for an Angle (θ) about an Arbitrary Axis (Ax, Ay, Az) 8 AA x x cos 1AA x x AA x y cos AA x y sinaz AA x z cos AA x z sina y M AA y x cos AA y x sinaz AA y y cos 1AA y y AA y z cos AA y z sina x AA z x cos AA z x sinay AA z y cos AA z y sinax AA z z cos 1 AA z z For this to be correct, A must be a unit vector 4

5 Converting from a Quaternion to a Matrix 9 q q q q qq qq qq qq RQ ( ) qq qq q q q q qq qq qq 1 3qq 0 qq 3qq 0 1 q0q1qq3 R = where: Note that the sum of the Trace (diagonal) elements is: Converting from a Matrix to a Quaternion 10 q q q q qq qq qq qq RQ ( ) qq qq q q q q qq qq qq 1 3qq 0 qq 3qq 0 1 q0q1qq3 Note that the sum of the Trace (diagonal) elements is: Letting t Trace( R) 1cos, then: 1 cos ( 1) t sin 1cos 5

6 Notes from Converting from a Quaternion to a Matrix 11 R= = R = Converting from a Matrix to a Quaternion 1 0 nzsin nysin 0 c b T R R nzsin 0 nxsin c 0 a nysin nxsin 0 b a 0 If we let a b c d a b c, then nˆ,, d d d q0 cos( ) q sin( ) nˆ 6

7 Quaternions in GLM 13 #include "glm/vec.hpp" #include "glm/vec3.hpp" #include "glm/mat4x4.hpp" #include "glm/gtc/matrix_transform.hpp" #include "glm/gtc/matrix_inverse.hpp" #include gtc/quaternion.hpp #include glm/gtx/quaternion.hpp glm::quat rot1 = glm::angleaxis( glm::radians(45.f), glm::vec3( 0.707f, 0.707f, 0. ) ); glm::quat rot = glm::angleaxis( glm::radians(90.f), glm::vec3( 1., 0., 0.,) ); glm::quat combinedrots = rot * rot1; glm::vec4 v = glm::vec4( 1., 1., 1., 1. ); glm::vec4 vp = combinedrots * v; glm::mat4 rotmatrix = glm::tomat4( combinedrots ); glm::vec4 vpp = rotmatrix * v; // same result as vp Converting from a Quaternion to OpenGL 14 glrotate3f( θ, n x, n y, n z ); glm::rotate( glm::quat const & q, θ R, glm::vec3( n x, n y, n z ) ); 7

8 A Useful Concept: Spherical Linear Interpolation, where P and Q are Quaternions 15 sin(1 t) sin t Q'( t) P Q sin sin 0. t 1. where: sin 1 My Code (Quat.h, Quat.cpp) 16 Rotate Slerp( float t, const Quat& p, const Quat& q ) { float angr; // angle between p and q in radians float c, s; // cosine and sine of the angle between p and q float cp, cq; // coefficients to multiply quaternions p and q Rotate r; // dot product to get the angle between p and q: c = p.s*q.s + p.vx*q.vx + p.vy*q.vy + p.vz*q.vz; angr = acos( c ); // sine of that angle: s = sin( angr ); // if the sine is 0., then p == q: if( s == 0. ) { r = p; return r; } // do spherical interpolation: cp = sin( (1.-t)*angr ) / s; cq = sin( t *angr ) / s; } r = cp*p + cq*q; return r; 8

9 int main( int argc, char *argv[ ] ) { Rotate r1 = Rotate( 45.*DR, 0., 0., 1. ); Rotate r = Rotate( 90.*DR, 0., 0., 1. ); Rotate r3 = Rotate( 90.*DR, 1., 0., 0. ); Rotate r4 = r * r1; Rotate r5 = r3 * r * r1; My Code (Quat.h, Quat.cpp) 17 fprintf( stderr, "r1 = %s\n", r1.tostring() ); fprintf( stderr, "r = %s\n", r.tostring() ); fprintf( stderr, "r*r1 = %s\n", r4.tostring() ); fprintf( stderr, "r3 = %s\n", r3.tostring() ); fprintf( stderr, "r3*r*r1 = %s\n", r5.tostring() ); fprintf( stderr, "\nr3*r*r1 matrix =\n" ); r5.printmatrix(); Point p1 = Point( 1., 1., 0. ); Point p = r4 * p1; fprintf( stderr, "Original point = %s\n", p1.tostring() ); fprintf( stderr, "Transformed point = %s\n", p.tostring() ); // try interpolating from r1 to r5: const int N = 10; float dt = 1. / (float)( N - 1 ); float t = 0.; for( int i = 0; i < N; i++, t += dt ) { Rotate r15 = Slerp( t, r1, r5 ); fprintf( stderr, "%d %5.3f %s\n", i, t, r15.tostring() ); } } My Code (Quat.h, Quat.cpp) 18 r1 = degrees about ( ) r = degrees about ( ) r*r1 = degrees about ( ) r3 = degrees about ( ) r3*r*r1 = degrees about ( ) r3*r*r1 matrix = Original point = Transformed point = degrees about ( ) degrees about ( ) degrees about ( ) degrees about ( ) degrees about ( ) degrees about ( ) degrees about ( ) degrees about ( ) degrees about ( ) degrees about ( ) 9

10 A Really Good (i.e., Complete) Reference 19 Andrew Hanson, Visualizing Quaternions, Morgan-Kaufmann,

GLM. Mike Bailey. What is GLM?

GLM. Mike Bailey. What is GLM? 1 GLM This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License Mike Bailey mjb@cs.oregonstate.edu GLM.pptx What is GLM? 2 GLM is a set of C++ classes

More information

Quaternion Rotations AUI Course Denbigh Starkey

Quaternion Rotations AUI Course Denbigh Starkey Major points of these notes: Quaternion Rotations AUI Course Denbigh Starkey. What I will and won t be doing. Definition of a quaternion and notation 3 3. Using quaternions to rotate any point around an

More information

The OpenGL Mathematics (GLM) Library. What is GLM?

The OpenGL Mathematics (GLM) Library. What is GLM? 1 The OpenGL Mathematics (GLM) Library This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License Mike Bailey mjb@cs.oregonstate.edu GLM.pptx What

More information

The OpenGL Mathematics (GLM) Library

The OpenGL Mathematics (GLM) Library 1 The OpenGL Mathematics (GLM) Library This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License Mike Bailey mjb@cs.oregonstate.edu GLM.pptx What

More information

Quaternions and Rotations

Quaternions and Rotations CSCI 520 Computer Animation and Simulation Quaternions and Rotations Jernej Barbic University of Southern California 1 Rotations Very important in computer animation and robotics Joint angles, rigid body

More information

12.1 Quaternions and Rotations

12.1 Quaternions and Rotations Fall 2015 CSCI 420 Computer Graphics 12.1 Quaternions and Rotations Hao Li http://cs420.hao-li.com 1 Rotations Very important in computer animation and robotics Joint angles, rigid body orientations, camera

More information

Quaternions and Rotations

Quaternions and Rotations CSCI 420 Computer Graphics Lecture 20 and Rotations Rotations Motion Capture [Angel Ch. 3.14] Rotations Very important in computer animation and robotics Joint angles, rigid body orientations, camera parameters

More information

Quaternions and Rotations

Quaternions and Rotations CSCI 480 Computer Graphics Lecture 20 and Rotations April 6, 2011 Jernej Barbic Rotations Motion Capture [Ch. 4.12] University of Southern California http://www-bcf.usc.edu/~jbarbic/cs480-s11/ 1 Rotations

More information

T y. x Ax By Cz D. z Ix Jy Kz L. Geometry: Topology: Transformations

T y. x Ax By Cz D. z Ix Jy Kz L. Geometry: Topology: Transformations Transformations Geometr vs. Topolog Original Object This work is licensed under a Creative Commons Attribution-NonCommercial- NoDerivatives.0 International License Mike Baile mjb@cs.oregonstate.edu Geometr:

More information

Quaternions and Rotations

Quaternions and Rotations CSCI 520 Computer Animation and Simulation Quaternions and Rotations Jernej Barbic University of Southern California 1 Rotations Very important in computer animation and robotics Joint angles, rigid body

More information

Transformations. Mike Bailey. Oregon State University. Oregon State University. Computer Graphics. transformations.

Transformations. Mike Bailey. Oregon State University. Oregon State University. Computer Graphics. transformations. 1 Transformations Mike Bailey mjb@cs.oregonstate.edu transformations.pptx Geometry vs. Topology 2 Original Object 4 1 2 4 Geometry: Where things are (e.g., coordinates) 3 1 3 2 Geometry = changed Topology

More information

3D Game Engine Programming. Understanding Quaternions. Helping you build your dream game engine. Posted on June 25, 2012 by Jeremiah van Oosten

3D Game Engine Programming. Understanding Quaternions. Helping you build your dream game engine. Posted on June 25, 2012 by Jeremiah van Oosten 3D Game Engine Programming Helping you build your dream game engine. Understanding Quaternions Posted on June 25, 2012 by Jeremiah van Oosten Understanding Quaternions In this article I will attempt to

More information

1 Historical Notes. Kinematics 5: Quaternions

1 Historical Notes. Kinematics 5: Quaternions 1 Historical Notes Quaternions were invented by the Irish mathematician William Rowan Hamilton in the late 1890s. The story goes 1 that Hamilton has pondered the problem of dividing one vector by another

More information

Quaternions & Rotation in 3D Space

Quaternions & Rotation in 3D Space Quaternions & Rotation in 3D Space 1 Overview Quaternions: definition Quaternion properties Quaternions and rotation matrices Quaternion-rotation matrices relationship Spherical linear interpolation Concluding

More information

3D Kinematics. Consists of two parts

3D Kinematics. Consists of two parts D Kinematics Consists of two parts D rotation D translation The same as D D rotation is more complicated than D rotation (restricted to z-ais) Net, we will discuss the treatment for spatial (D) rotation

More information

ME 597: AUTONOMOUS MOBILE ROBOTICS SECTION 2 COORDINATE TRANSFORMS. Prof. Steven Waslander

ME 597: AUTONOMOUS MOBILE ROBOTICS SECTION 2 COORDINATE TRANSFORMS. Prof. Steven Waslander ME 597: AUTONOMOUS MOILE ROOTICS SECTION 2 COORDINATE TRANSFORMS Prof. Steven Waslander OUTLINE Coordinate Frames and Transforms Rotation Matrices Euler Angles Quaternions Homogeneous Transforms 2 COORDINATE

More information

Quaternion properties: addition. Introduction to quaternions. Quaternion properties: multiplication. Derivation of multiplication

Quaternion properties: addition. Introduction to quaternions. Quaternion properties: multiplication. Derivation of multiplication Introduction to quaternions Definition: A quaternion q consists of a scalar part s, s, and a vector part v ( xyz,,, v 3 : q where, [ s, v q [ s, ( xyz,, q s+ ix + jy + kz i 2 j 2 k 2 1 ij ji k k Quaternion

More information

CS770/870 Spring 2017 Quaternions

CS770/870 Spring 2017 Quaternions CS770/870 Spring 2017 Quaternions Primary resources used in preparing these notes: 1. van Osten, 3D Game Engine Programming: Understanding Quaternions, https://www.3dgep.com/understanding-quaternions 2.

More information

Introduction to quaternions. Mathematics. Operations

Introduction to quaternions. Mathematics. Operations Introduction to quaternions Topics: Definition Mathematics Operations Euler Angles (optional) intro to quaternions 1 noel.h.hughes@gmail.com Euler's Theorem y y Angle! rotation follows right hand rule

More information

CS354 Computer Graphics Rotations and Quaternions

CS354 Computer Graphics Rotations and Quaternions Slide Credit: Don Fussell CS354 Computer Graphics Rotations and Quaternions Qixing Huang April 4th 2018 Orientation Position and Orientation The position of an object can be represented as a translation

More information

QUATERNIONS AND ROTATIONS

QUATERNIONS AND ROTATIONS 1 CHAPTER 6. QUATERNIONS AND ROTATIONS 1 INSTITIÚID TEICNEOLAÍOCHTA CHEATHARLACH INSTITUTE OF TECHNOLOGY CARLOW QUATERNIONS AND ROTATIONS 1 Quaternions and Rotations 1.1 Introduction William Rowan Hamilton

More information

Orientation & Quaternions

Orientation & Quaternions Orientation & Quaternions Orientation Position and Orientation The position of an object can be represented as a translation of the object from the origin The orientation of an object can be represented

More information

Simple Keyframe Animation

Simple Keyframe Animation Simple Keyframe Animation Mike Bailey mjb@cs.oregonstate.edu This work is licensed under a Creative Commons Attribution-NonCommercial- NoDerivatives 4. International License keyframe.pptx Approaches to

More information

Animating orientation. CS 448D: Character Animation Prof. Vladlen Koltun Stanford University

Animating orientation. CS 448D: Character Animation Prof. Vladlen Koltun Stanford University Animating orientation CS 448D: Character Animation Prof. Vladlen Koltun Stanford University Orientation in the plane θ (cos θ, sin θ) ) R θ ( x y = sin θ ( cos θ sin θ )( x y ) cos θ Refresher: Homogenous

More information

Visualizing Quaternions

Visualizing Quaternions Visualizing Quaternions Andrew J. Hanson Computer Science Department Indiana University Siggraph 25 Tutorial OUTLINE I: (45min) Twisting Belts, Rolling Balls, and Locking Gimbals: Explaining Rotation Sequences

More information

CS 445 / 645 Introduction to Computer Graphics. Lecture 21 Representing Rotations

CS 445 / 645 Introduction to Computer Graphics. Lecture 21 Representing Rotations CS 445 / 645 Introduction to Computer Graphics Lecture 21 Representing Rotations Parameterizing Rotations Straightforward in 2D A scalar, θ, represents rotation in plane More complicated in 3D Three scalars

More information

Visual Recognition: Image Formation

Visual Recognition: Image Formation Visual Recognition: Image Formation Raquel Urtasun TTI Chicago Jan 5, 2012 Raquel Urtasun (TTI-C) Visual Recognition Jan 5, 2012 1 / 61 Today s lecture... Fundamentals of image formation You should know

More information

Rotation with Quaternions

Rotation with Quaternions Rotation with Quaternions Contents 1 Introduction 1.1 Translation................... 1. Rotation..................... 3 Quaternions 5 3 Rotations Represented as Quaternions 6 3.1 Dynamics....................

More information

Fundamentals of Computer Animation

Fundamentals of Computer Animation Fundamentals of Computer Animation Quaternions as Orientations () page 1 Multiplying Quaternions q1 = (w1, x1, y1, z1); q = (w, x, y, z); q1 * q = ( w1.w - v1.v, w1.v + w.v1 + v1 X v) where v1 = (x1, y1,

More information

Quaternion to Euler Angle Conversion for Arbitrary Rotation Sequence Using Geometric Methods

Quaternion to Euler Angle Conversion for Arbitrary Rotation Sequence Using Geometric Methods uaternion to Euler Angle Conversion for Arbitrary Rotation Sequence Using Geometric Methods ê = normalized Euler ation axis i Noel H. Hughes Nomenclature = indices of first, second and third Euler

More information

INF3320 Computer Graphics and Discrete Geometry

INF3320 Computer Graphics and Discrete Geometry INF3320 Computer Graphics and Discrete Geometry Transforms (part II) Christopher Dyken and Martin Reimers 21.09.2011 Page 1 Transforms (part II) Real Time Rendering book: Transforms (Chapter 4) The Red

More information

Inertial Measurement Units II!

Inertial Measurement Units II! ! Inertial Measurement Units II! Gordon Wetzstein! Stanford University! EE 267 Virtual Reality! Lecture 10! stanford.edu/class/ee267/!! wikipedia! Polynesian Migration! Lecture Overview! short review of

More information

Visualizing Quaternions

Visualizing Quaternions Visualizing Quaternions Andrew J. Hanson Computer Science Department Indiana University Siggraph 1 Tutorial 1 GRAND PLAN I: Fundamentals of Quaternions II: Visualizing Quaternion Geometry III: Quaternion

More information

3D Rotation: more than just a hobby

3D Rotation: more than just a hobby 3D Rotation: more than just a hobby Eric Yang s special talent is the mental rotation of threedimensional objects. Mental rotation is Yang s hobby. I can see textures and imperfections and the play of

More information

Animation. Animation

Animation. Animation CS475m - Computer Graphics Lecture 5 : Interpolation for Selected (key) frames are specified. Interpolation of intermediate frames. Simple and popular approach. May give incorrect (inconsistent) results.

More information

Quaternions and Exponentials

Quaternions and Exponentials Quaternions and Exponentials Michael Kazhdan (601.457/657) HB A.6 FvDFH 21.1.3 Announcements OpenGL review II: Today at 9:00pm, Malone 228 This week's graphics reading seminar: Today 2:00-3:00pm, my office

More information

Applications of Dual Quaternions in Three Dimensional Transformation and Interpolation

Applications of Dual Quaternions in Three Dimensional Transformation and Interpolation Applications of Dual Quaternions in Three Dimensional Transformation and Interpolation November 11, 2013 Matthew Smith mrs126@uclive.ac.nz Department of Computer Science and Software Engineering University

More information

Lab 2A Finding Position and Interpolation with Quaternions

Lab 2A Finding Position and Interpolation with Quaternions Lab 2A Finding Position and Interpolation with Quaternions In this Lab we will learn how to use the RVIZ Robot Simulator, Python Programming Interpreter and ROS tf library to study Quaternion math. There

More information

SUMMARY. CS380: Introduction to Computer Graphics Track-/Arc-ball Chapter 8. Min H. Kim KAIST School of Computing 18/04/06.

SUMMARY. CS380: Introduction to Computer Graphics Track-/Arc-ball Chapter 8. Min H. Kim KAIST School of Computing 18/04/06. 8/4/6 CS38: Introduction to Computer Graphics Track-/Arc-ball Chapter 8 Min H. Kim KAIST School of Computing Quaternion SUMMARY 2 8/4/6 Unit norm quats. == rotations Squared norm is sum of 4 squares. Any

More information

Objectives. transformation. General Transformations. Affine Transformations. Notation. Pipeline Implementation. Introduce standard transformations

Objectives. transformation. General Transformations. Affine Transformations. Notation. Pipeline Implementation. Introduce standard transformations Objectives Transformations CS Interactive Computer Graphics Prof. David E. Breen Department of Computer Science Introduce standard transformations - Rotation - Translation - Scaling - Shear Derive homogeneous

More information

CS 475 / CS 675 Computer Graphics. Lecture 16 : Interpolation for Animation

CS 475 / CS 675 Computer Graphics. Lecture 16 : Interpolation for Animation CS 475 / CS 675 Computer Graphics Lecture 16 : Interpolation for Keyframing Selected (key) frames are specified. Interpolation of intermediate frames. Simple and popular approach. May give incorrect (inconsistent)

More information

Transformations. CS 537 Interactive Computer Graphics Prof. David E. Breen Department of Computer Science

Transformations. CS 537 Interactive Computer Graphics Prof. David E. Breen Department of Computer Science Transformations CS 537 Interactive Computer Graphics Prof. David E. Breen Department of Computer Science 1 Objectives Introduce standard transformations - Rotation - Translation - Scaling - Shear Derive

More information

CS612 - Algorithms in Bioinformatics

CS612 - Algorithms in Bioinformatics Fall 2017 Structural Manipulation November 22, 2017 Rapid Structural Analysis Methods Emergence of large structural databases which do not allow manual (visual) analysis and require efficient 3-D search

More information

Working With 3D Rotations. Stan Melax Graphics Software Engineer, Intel

Working With 3D Rotations. Stan Melax Graphics Software Engineer, Intel Working With 3D Rotations Stan Melax Graphics Software Engineer, Intel Human Brain is wired for Spatial Computation Which shape is the same: a) b) c) I don t need to ask for directions Translations A childhood

More information

Animation. The Alpha and Interpolator of Java 3D

Animation. The Alpha and Interpolator of Java 3D Animation Java 3D provides a very powerful and easy to use animation facility It is based on two classes Alpha Interpolator Animations are run in separate threads This is handled by the Alpha and Interpolator

More information

AH Matrices.notebook November 28, 2016

AH Matrices.notebook November 28, 2016 Matrices Numbers are put into arrays to help with multiplication, division etc. A Matrix (matrices pl.) is a rectangular array of numbers arranged in rows and columns. Matrices If there are m rows and

More information

Matrices. Matrices. A matrix is a 2D array of numbers, arranged in rows that go across and columns that go down: 4 columns. Mike Bailey.

Matrices. Matrices. A matrix is a 2D array of numbers, arranged in rows that go across and columns that go down: 4 columns. Mike Bailey. Matrices 1 Matrices 2 A matrix is a 2D array of numbers, arranged in rows that go across and columns that go down: A column: This work is licensed under a Creative Commons Attribution-NonCommercial- NoDerivatives

More information

Computer Animation II

Computer Animation II Computer Animation II Orientation interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic Lecture 13 6.837 Fall 2002 Interpolation Review from Thursday Splines Articulated bodies

More information

Quaternions: From Classical Mechanics to Computer Graphics, and Beyond

Quaternions: From Classical Mechanics to Computer Graphics, and Beyond Proceedings of the 7 th Asian Technology Conference in Mathematics 2002. Invited Paper Quaternions: From Classical Mechanics to Computer Graphics, and Beyond R. Mukundan Department of Computer Science

More information

CMSC 425: Lecture 6 Affine Transformations and Rotations

CMSC 425: Lecture 6 Affine Transformations and Rotations CMSC 45: Lecture 6 Affine Transformations and Rotations Affine Transformations: So far we have been stepping through the basic elements of geometric programming. We have discussed points, vectors, and

More information

3D Modelling: Animation Fundamentals & Unit Quaternions

3D Modelling: Animation Fundamentals & Unit Quaternions 3D Modelling: Animation Fundamentals & Unit Quaternions CITS3003 Graphics & Animation Thanks to both Richard McKenna and Marco Gillies for permission to use their slides as a base. Static objects are boring

More information

Matrices. Mike Bailey. matrices.pptx. Matrices

Matrices. Mike Bailey. matrices.pptx. Matrices Matrices 1 Mike Bailey mjb@cs.oregonstate.edu This work is licensed under a Creative Commons Attribution-NonCommercial- NoDerivatives 4.0 International License matrices.pptx Matrices 2 A matrix is a 2D

More information

3D Transformations World Window to Viewport Transformation Week 2, Lecture 4

3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 CS 430/536 Computer Graphics I 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli and Maxim Peysakhov Geometric and Intelligent Computing Laboratory

More information

Transformations: 2D Transforms

Transformations: 2D Transforms 1. Translation Transformations: 2D Transforms Relocation of point WRT frame Given P = (x, y), translation T (dx, dy) Then P (x, y ) = T (dx, dy) P, where x = x + dx, y = y + dy Using matrix representation

More information

Quaternions and Euler Angles

Quaternions and Euler Angles Quaternions and Euler Angles Revision #1 This document describes how the VR Audio Kit handles the orientation of the 3D Sound One headset using quaternions and Euler angles, and how to convert between

More information

Transformations Week 9, Lecture 18

Transformations Week 9, Lecture 18 CS 536 Computer Graphics Transformations Week 9, Lecture 18 2D Transformations David Breen, William Regli and Maxim Peysakhov Department of Computer Science Drexel University 1 3 2D Affine Transformations

More information

Animation. Computer Graphics COMP 770 (236) Spring Instructor: Brandon Lloyd 4/23/07 1

Animation. Computer Graphics COMP 770 (236) Spring Instructor: Brandon Lloyd 4/23/07 1 Animation Computer Graphics COMP 770 (236) Spring 2007 Instructor: Brandon Lloyd 4/23/07 1 Today s Topics Interpolation Forward and inverse kinematics Rigid body simulation Fluids Particle systems Behavioral

More information

CGT520 Transformations

CGT520 Transformations CGT520 Transformations Bedrich Benes, Ph.D. Purdue University Department of Computer Graphics GLM A concise library for transforms and OpenGL mathematics All overloaded, predefined, optimized glm (OpenGL

More information

Lecture Note 3: Rotational Motion

Lecture Note 3: Rotational Motion ECE5463: Introduction to Robotics Lecture Note 3: Rotational Motion Prof. Wei Zhang Department of Electrical and Computer Engineering Ohio State University Columbus, Ohio, USA Spring 2018 Lecture 3 (ECE5463

More information

Aalto CS-C3100 Computer Graphics, Fall 2016

Aalto CS-C3100 Computer Graphics, Fall 2016 Aalto CS-C3100 Computer Graphics, Fall 2016 Representation and Interpolation of Wikipedia user Blutfink Rotations...or, adventures on the 4D unit sphere Jaakko Lehtinen with lots of slides from Frédo Durand

More information

Reading. Topics in Articulated Animation. Character Representation. Animation. q i. t 1 t 2. Articulated models: Character Models are rich, complex

Reading. Topics in Articulated Animation. Character Representation. Animation. q i. t 1 t 2. Articulated models: Character Models are rich, complex Shoemake, Quaternions Tutorial Reading Topics in Articulated Animation 2 Articulated models: rigid parts connected by joints Animation They can be animated by specifying the joint angles (or other display

More information

PSE Game Physics. Session (3) Springs, Ropes, Linear Momentum and Rotations. Oliver Meister, Roland Wittmann

PSE Game Physics. Session (3) Springs, Ropes, Linear Momentum and Rotations. Oliver Meister, Roland Wittmann PSE Game Physics Session (3) Springs, Ropes, Linear Momentum and Rotations Oliver Meister, Roland Wittmann 08.05.2015 Session (3) Springs, Ropes, Linear Momentum and Rotations, 08.05.2015 1 Outline Springs

More information

Transformations (Rotations with Quaternions) October 24, 2005

Transformations (Rotations with Quaternions) October 24, 2005 Computer Graphics Transformations (Rotations with Quaternions) October 4, 5 Virtual Trackball (/3) Using the mouse position to control rotation about two axes Supporting continuous rotations of objects

More information

1 Transformations. Chapter 1. Transformations. Department of Computer Science and Engineering 1-1

1 Transformations. Chapter 1. Transformations. Department of Computer Science and Engineering 1-1 Transformations 1-1 Transformations are used within the entire viewing pipeline: Projection from world to view coordinate system View modifications: Panning Zooming Rotation 1-2 Transformations can also

More information

Quaternions in Practice

Quaternions in Practice xbdev.net manuscript No. quaternions in practice (bkenwright@xbdev.net) Quaternions in Practice Converting, Validating, and Understanding Ben Kenwright January 2013 Abstract In this paper, we present a

More information

Fundamentals of Computer Animation

Fundamentals of Computer Animation Fundamentals of Computer Animation Orientation and Rotation University of Calgary GraphicsJungle Project CPSC 587 5 page Motivation Finding the most natural and compact way to present rotation and orientations

More information

Chapter 3 : Computer Animation

Chapter 3 : Computer Animation Chapter 3 : Computer Animation Histor First animation films (Disne) 30 drawings / second animator in chief : ke frames others : secondar drawings Use the computer to interpolate? positions orientations

More information

Le s s on 02. Basic methods in Computer Animation

Le s s on 02. Basic methods in Computer Animation Le s s on 02 Basic methods in Computer Animation Lesson 02 Outline Key-framing and parameter interpolation Skeleton Animation Forward and inverse Kinematics Procedural techniques Motion capture Key-framing

More information

Answers to practice questions for Midterm 1

Answers to practice questions for Midterm 1 Answers to practice questions for Midterm Paul Hacking /5/9 (a The RREF (reduced row echelon form of the augmented matrix is So the system of linear equations has exactly one solution given by x =, y =,

More information

Quaternions and Dual Coupled Orthogonal Rotations in Four-Space

Quaternions and Dual Coupled Orthogonal Rotations in Four-Space Quaternions and Dual Coupled Orthogonal Rotations in Four-Space Kurt Nalty January 8, 204 Abstract Quaternion multiplication causes tensor stretching) and versor turning) operations. Multiplying by unit

More information

a a= a a =a a 1 =1 Division turned out to be equivalent to multiplication: a b= a b =a 1 b

a a= a a =a a 1 =1 Division turned out to be equivalent to multiplication: a b= a b =a 1 b MATH 245 Extra Effort ( points) My assistant read through my first draft, got half a page in, and skipped to the end. So I will save you the flipping. Here is the assignment. Do just one of them. All the

More information

CE 601: Numerical Methods Lecture 5. Course Coordinator: Dr. Suresh A. Kartha, Associate Professor, Department of Civil Engineering, IIT Guwahati.

CE 601: Numerical Methods Lecture 5. Course Coordinator: Dr. Suresh A. Kartha, Associate Professor, Department of Civil Engineering, IIT Guwahati. CE 601: Numerical Methods Lecture 5 Course Coordinator: Dr. Suresh A. Kartha, Associate Professor, Department of Civil Engineering, IIT Guwahati. Elimination Methods For a system [A]{x} = {b} where [A]

More information

Quaternions & Octonions Made Easy. A Series Illustrating Innovative Forms of the Organization & Exposition of Mathematics by Walter Gottschalk

Quaternions & Octonions Made Easy. A Series Illustrating Innovative Forms of the Organization & Exposition of Mathematics by Walter Gottschalk Quaternions & Octonions Made Easy #20 of Gottschalk's Gestalts A Series Illustrating Innovative Forms of the Organization & Exposition of Mathematics by Walter Gottschalk Infinite Vistas Press PVD RI 2001

More information

Transformation. Jane Li Assistant Professor Mechanical Engineering & Robotics Engineering

Transformation. Jane Li Assistant Professor Mechanical Engineering & Robotics Engineering RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON S RBE 550 Transformation Jane Li Assistant Professor Mechanical Engineering & Robotics Engineering http://users.wpi.edu/~zli11 Announcement Project

More information

Animation and Quaternions

Animation and Quaternions Animation and Quaternions Partially based on slides by Justin Solomon: http://graphics.stanford.edu/courses/cs148-1-summer/assets/lecture_slides/lecture14_animation_techniques.pdf 1 Luxo Jr. Pixar 1986

More information

521493S Computer Graphics Exercise 2 Solution (Chapters 4-5)

521493S Computer Graphics Exercise 2 Solution (Chapters 4-5) 5493S Computer Graphics Exercise Solution (Chapters 4-5). Given two nonparallel, three-dimensional vectors u and v, how can we form an orthogonal coordinate system in which u is one of the basis vectors?

More information

Computer Animation Fundamentals. Animation Methods Keyframing Interpolation Kinematics Inverse Kinematics

Computer Animation Fundamentals. Animation Methods Keyframing Interpolation Kinematics Inverse Kinematics Computer Animation Fundamentals Animation Methods Keyframing Interpolation Kinematics Inverse Kinematics Lecture 21 6.837 Fall 2001 Conventional Animation Draw each frame of the animation great control

More information

Basic Elements. Geometry is the study of the relationships among objects in an n-dimensional space

Basic Elements. Geometry is the study of the relationships among objects in an n-dimensional space Basic Elements Geometry is the study of the relationships among objects in an n-dimensional space In computer graphics, we are interested in objects that exist in three dimensions We want a minimum set

More information

CS184: Using Quaternions to Represent Rotation

CS184: Using Quaternions to Represent Rotation Page 1 of 5 CS 184 home page A note on these notes: These notes on quaternions were created as a resource for students taking CS184 at UC Berkeley. I am not doing any research related to quaternions and

More information

Rotations in 3D Graphics and the Gimbal Lock

Rotations in 3D Graphics and the Gimbal Lock Rotations in 3D Graphics and the Gimbal Lock Valentin Koch Autodesk Inc. January 27, 2016 Valentin Koch (ADSK) IEEE Okanagan January 27, 2016 1 / 37 Presentation Road Map 1 Introduction 2 Rotation Matrices

More information

Matrix Transformations The position of the corners of this triangle are described by the vectors: 0 1 ] 0 1 ] Transformation:

Matrix Transformations The position of the corners of this triangle are described by the vectors: 0 1 ] 0 1 ] Transformation: Matrix Transformations The position of the corners of this triangle are described by the vectors: [ 2 1 ] & [4 1 ] & [3 3 ] Use each of the matrices below to transform these corners. In each case, draw

More information

62 Basilio Bona - Dynamic Modelling

62 Basilio Bona - Dynamic Modelling 6 Basilio Bona - Dynamic Modelling Only 6 multiplications are required compared to the 7 that are involved in the product between two 3 3 rotation matrices...6 Quaternions Quaternions were introduced by

More information

Visualizing Quaternion Multiplication

Visualizing Quaternion Multiplication Received April 12, 2017, accepted May 8, 2017, date of publication May 17, 2017, date of current version June 28, 2017. Digital Object Identifier 10.1109/ACCESS.2017.2705196 Visualizing Quaternion Multiplication

More information

Towards an Intuitive Understanding of Quaternion Rotations

Towards an Intuitive Understanding of Quaternion Rotations Towards an Intuitive Understanding of Quaternion Rotations James Jennings 4th draft February 6, 2008 Abstract: Although quaternions are generally deemed useful for representing three dimenional rotations

More information

3D Rotations and Complex Representations. Computer Graphics CMU /15-662, Fall 2017

3D Rotations and Complex Representations. Computer Graphics CMU /15-662, Fall 2017 3D Rotations and Complex Representations Computer Graphics CMU 15-462/15-662, Fall 2017 Rotations in 3D What is a rotation, intuitively? How do you know a rotation when you see it? - length/distance is

More information

Affine Transformations Computer Graphics Scott D. Anderson

Affine Transformations Computer Graphics Scott D. Anderson Affine Transformations Computer Graphics Scott D. Anderson 1 Linear Combinations To understand the poer of an affine transformation, it s helpful to understand the idea of a linear combination. If e have

More information

Trigonometric Functions of Any Angle

Trigonometric Functions of Any Angle Trigonometric Functions of Any Angle MATH 160, Precalculus J. Robert Buchanan Department of Mathematics Fall 2011 Objectives In this lesson we will learn to: evaluate trigonometric functions of any angle,

More information

A Detailed Look into Forward and Inverse Kinematics

A Detailed Look into Forward and Inverse Kinematics A Detailed Look into Forward and Inverse Kinematics Kinematics = Study of movement, motion independent of the underlying forces that cause them September 19-26, 2016 Kinematics Preliminaries Preliminaries:

More information

Spherical Arcs using Quaternion Division

Spherical Arcs using Quaternion Division Spherical Arcs using Quaternion Division Kurt Nalty January 11, 2014 Abstract Quaternion division is commonly illustrated using spherical arcs on a sphere. This note turns things around, to show how to

More information

Kinematical Animation.

Kinematical Animation. Kinematical Animation 3D animation in CG Goal : capture visual attention Motion of characters Believable Expressive Realism? Controllability Limits of purely physical simulation : - little interactivity

More information

Lesson 28: When Can We Reverse a Transformation?

Lesson 28: When Can We Reverse a Transformation? Lesson 8 M Lesson 8: Student Outcomes Students determine inverse matrices using linear systems. Lesson Notes In the final three lessons of this module, students discover how to reverse a transformation

More information

Order of Transformations

Order of Transformations Order of Transformations Because the same transformation is applied to many vertices, the cost of forming a matrix M=ABCD is not significant compared to the cost of computing Mp for many vertices p Note

More information

Anatomical Descriptions That Compute Functional Attributes

Anatomical Descriptions That Compute Functional Attributes Anatomical Descriptions That Compute Functional Attributes Goal: To write a description of an anatomical structure that leads directly to the calculation of its functional attributes. For instance, an

More information

Animation Curves and Splines 2

Animation Curves and Splines 2 Animation Curves and Splines 2 Animation Homework Set up Thursday a simple avatar E.g. cube/sphere (or square/circle if 2D) Specify some key frames (positions/orientations) Associate Animation a time with

More information

Adding vectors. Let s consider some vectors to be added.

Adding vectors. Let s consider some vectors to be added. Vectors Some physical quantities have both size and direction. These physical quantities are represented with vectors. A common example of a physical quantity that is represented with a vector is a force.

More information

Lecture 9: Transformations. CITS3003 Graphics & Animation

Lecture 9: Transformations. CITS3003 Graphics & Animation Lecture 9: Transformations CITS33 Graphics & Animation E. Angel and D. Shreiner: Interactive Computer Graphics 6E Addison-Wesley 212 Objectives Introduce standard transformations Rotation Translation Scaling

More information

Computer Graphics Lighting

Computer Graphics Lighting Lighting 1 Mike Bailey mjb@cs.oregonstate.edu This work is licensed under a Creative Commons Attribution-NonCommercial- NoDerivatives 4.0 International License Lighting.pptx Why Do We Care About Lighting?

More information

Computer Graphics Lighting. Why Do We Care About Lighting?

Computer Graphics Lighting. Why Do We Care About Lighting? Lighting 1 Mike Bailey mjb@cs.oregonstate.edu This work is licensed under a Creative Commons Attribution-NonCommercial- NoDerivatives 4.0 International License Lighting.pptx Why Do We Care About Lighting?

More information

Math12 Pre-Calc Review - Trig

Math12 Pre-Calc Review - Trig Math1 Pre-Calc Review - Trig Multiple Choice Identify the choice that best completes the statement or answers the question. 1. Which of the following angles, in degrees, is coterminal with, but not equal

More information

Rotations (and other transformations) Rotation as rotation matrix. Storage. Apply to vector matrix vector multiply (15 flops)

Rotations (and other transformations) Rotation as rotation matrix. Storage. Apply to vector matrix vector multiply (15 flops) Cornell University CS 569: Interactive Computer Graphics Rotations (and other transformations) Lecture 4 2008 Steve Marschner 1 Rotation as rotation matrix 9 floats orthogonal and unit length columns and

More information