Quaternions and Exponentials

Size: px
Start display at page:

Download "Quaternions and Exponentials"

Transcription

1 Quaternions and Exponentials Michael Kazhdan ( /657) HB A.6 FvDFH

2 Announcements OpenGL review II: Today at 9:00pm, Malone 228 This week's graphics reading seminar: Today 2:00-3:00pm, my office "Skinning with Dual Quaternions"

3 Recall We saw two different methods for interpolating/approximating between rotations: Normalization: (SVD) Blend as 3 3 matrices and then map to the closest rotation. Parameterization: (Euler Angles) Compute the parameter values, blend those, and then evaluate at the blended values.

4 Overview Cross Products and (Skew) Symmetric Matrices Quaternions The Exponential Map

5 Cross Product Given 3D vectors u = u 1, u 2, u 3 and v = (v 1, v 2, v 3 ) the cross product of u and v is: u 2 v 3 u 3 v 2 u v u v = u 3 v 1 u 1 v 3 u 1 v 2 u 2 v 1 v Properties: The cross product is orthogonal to both u and v. The vectors u, v, u v align with the right hand rule. The length of the cross product is equal to the area of the parallelogram defined by u and v. u v = v u u v + w = u v + u w tu v = t(u v) u

6 (Skew) Symmetric Matrices A matrix M is symmetric if: M ij = M ji M = M t A matrix M is skew-symmetric if: M ij = M ji M = M t (Skew) Symmetric matrices are closed under addition and scaling: If A = A t and B = B t, then A + B = A + B t. If A = A t then αa = αa t. If A = A t and B = B t, then A + B = A + B t. If A = A t then αa = αa t.

7 Overview Cross Products and (Skew) Symmetric Matrices Quaternions The Exponential Map

8 Quaternions Quaternions are extensions of complex numbers, with three imaginary values instead of one: a + ib + jc + kd Like the complex numbers, we can add quaternions together by summing the individual components: a 1 + ib 1 + jc 1 + kd 1 + a 2 + ib 2 + jc 1 + kd 2 = a 1 + a 2 + i b 1 + b 2 + j c 1 + c 2 + k(d 1 + d 2 )

9 Quaternions Quaternions are extensions of complex numbers, with three imaginary values instead of one: a + ib + jc + kd Like the imaginary component of complex numbers, squaring the components gives: i 2 = j 2 = k 2 = 1 However, the multiplication rules are more complex: ij = k ik = j jk = i ji = k ki = j kj = i

10 Quaternions Quaternions are extensions of complex numbers, with three imaginary values instead of one: a + ib + jc + kd Like Note: the imaginary component of complex numbers, squaring Multiplication the components of quaternions gives: is not commutative i 2 the = result j 2 = kof 2 the = 1 multiplication However, depends the on multiplication the order in which rules it are is done more complex: ij = k ik = j jk = i ji = k ki = j kj = i

11 Quaternions More generally, the product of two quaternions is: a 1 + ib 1 + jc 1 + kd 1 a 2 + ib 2 + jc 2 + kd 2 = a 1 a 2 b 1 b 2 c 1 c 2 d 1 d 2 +i a 1 b 2 + a 2 b 1 + c 1 d 2 c 2 d 1 +j a 1 c 2 + a 2 c 1 b 1 d 2 + b 2 d 1 +k(a 1 d 2 + a 2 d 1 + b 1 c 2 b 2 c 1 ) i 2 = j 2 = k 2 = 1 ij = k ik = j jk = i ji = k ki = j kj = i

12 Quaternions As with complex numbers, the conjugate of a quaternion q = a + ib + jc + kd is: q = a ib jc kd As with complex numbers, the norm of a quaternion q = a + ib + jc + kd is: q = a 2 + b 2 + c 2 + d 2 = q q As with complex numbers, the reciprocal is defined by dividing the conjugate by the square norm: 1 q = 1 q q q = q q 2

13 Quaternions One way to express a quaternion is as a pair consisting of the real value and the 3D vector consisting of the imaginary components: q = α, w with α = a and w = (b, c, d) The advantage of this representation is that it is easier to express quaternion multiplication: q 1 q 2 = α 1, w 1 α 2, w 2 = α 1 α 2 w 1, w 2, α 1 w 2 + α 2 w 1 + w 1 w 2 q 1 q 2 = a 1 a 2 b 1 b 2 c 1 c 2 d 1 d 2 +i a 1 b 2 + a 2 b 1 + c 1 d 2 c 2 d 1 +j a 1 c 2 + a 2 c 1 b 1 d 2 + b 2 d 1 +k(a 1 d 2 + a 2 d 1 + b 1 c 2 b 2 c 1 )

14 Quaternions We can also think of points in 3D as (purely imaginary) quaternions: x, y, z ix + jy + kz = (0, w) Given a unit quaternion q and an imaginary quaternion (3D point) p, consider the map: q p = qp q

15 Quaternions q p = qp q Claim: 1. The map takes 3D points to 3D points q(p) = α q, w q 0, w p α q, w q = w q, w p, α q w p + w q w p α q, w q = α q w q, w p + α q w p, w q + w q w p, w q, = 0,

16 Quaternions q p = qp q Claim: 1. The map takes 3D points to 3D points 2. The map is linear q a p 1 + b p 2 = q a p 1 + b p 2 q = a qp q q + b qp 2 q = a q p 1 + b q p 2

17 Quaternions q p = qp q Claim: 1. The map takes 3D points to 3D points 2. The map is linear 3. The map is norm-preserving q p = qp q = q p q = p since q is a unit quaternion

18 Quaternions q p = qp q Claim: 1. The map takes 3D points to 3D points 2. The map is linear 3. The map is norm-preserving The map p qp q is a rotation when q is a unit quaternion.

19 Quaternions and Rotations If q = a + ib + jc + kd is a unit quaternion ( q = 1), we can associate q with the rotation: R q = 1 2c 2 2d 2 2bc 2ad 2bd + 2ac 2bc + 2ad 1 2b 2 2d 2 2cd 2ab 2bd 2ac 2cd + 2ab 1 2b 2 2c 2 This has the property that: R q 1 q 2 = R q 1 R q 2 Note that because all of the terms are quadratic, the rotation associated with q is the same as the rotation associated with q.

20 Quaternions and Rotations If q = a + ib + jc + kd is a unit quaternion ( q = 1), we can associate q with the rotation: R q = 1 2c 2 2d 2 2bc 2ad 2bd + 2ac 2bc + 2ad 1 2b 2 2d 2 2cd 2ab 2bd 2ac 2cd + 2ab 1 2b 2 2c 2 Because q is a unit quaternion, we have: q 2 = a, w 2 = a 2 + w 2 = 1 Or equivalently, if we set w to be a unit vector, there exists θ such that: q = cos θ 2, sin θ 2 w

21 Quaternions and Rotations If q = a + ib + jc + kd is a unit quaternion ( q = 1), we can associate q with the rotation: R q = 1 2c 2 2d 2 2bc 2ad 2bd + 2ac 2bc + 2ad 1 2b 2 2d 2 2cd 2ab 2bd 2ac 2cd + 2ab 1 2b 2 2c 2 Because q is a unit quaternion, we have: q = cos θ 2, sin θ 2 w It turns out that q corresponds to the rotation whose: axis of rotation is w, and angle of rotation is θ.

22 Quaternions Instead of blending matrices {M 0,, M n 1 } and then normalizing using SVD, we can blend the quaternions and then normalize them: For each M i, compute the quaternion rep. (α i, w i )

23 Quaternions Instead of blending matrices {M 0,, M n 1 } and then normalizing using SVD, we can blend the quaternions and then normalize them: For each M i, compute the quaternion rep. (α i, w i ) Interpolate/Approximate the quaternions:

24 Quaternions Instead of blending matrices {M 0,, M n 1 } and then normalizing using SVD, we can blend the quaternions and then normalize them: For each M i, compute the quaternion rep. (α i, w i ) Interpolate/Approximate the quaternions:» Linear Interpolation: α i t = 1 t α i + tα i+1 w i t = 1 t w i + tw i+1

25 Quaternions Instead of blending matrices {M 0,, M n 1 } and then normalizing using SVD, we can blend the quaternions and then normalize them: For each M i, compute the quaternion rep. (α i, w i ) Interpolate/Approximate the quaternions:» Linear Interpolation» Catmull-Rom Interpolation: α i t = CR 0 t α k 1 + CR 1 t α k + CR 2 t α k+1 + CR 3 t α k+2 w i t = CR 0 t w k 1 + CR 1 t w k + CR 2 t w k+1 + CR 3 t w k+2

26 Quaternions Instead of blending matrices {M 0,, M n 1 } and then normalizing using SVD, we can blend the quaternions and then normalize them: For each M i, compute the quaternion rep. (α i, w i ) Interpolate/Approximate the quaternions:» Linear Interpolation» Catmull-Rom Interpolation» Uniform Cubic B-Spline Approximation: α i t = B 0,3 t α k 1 + B 1,3 t α k + B 2,3 t α k+1 + B 3,3 t α k+2 w i t = B 0,3 t w k 1 + B 1,3 t w k + B 2,3 t w k+1 + B 3,3 t w k+2

27 Quaternions Instead of blending matrices {M 0,, M n 1 } and then normalizing using SVD, we can blend the quaternions and then normalize them: For each M i, compute the quaternion rep. (α i, w i ) Interpolate/Approximate the quaternions:» Linear Interpolation» Catmull-Rom Interpolation» Uniform Cubic B-Spline Approximation Set the value of the in-between rotation to be the normalized quaternion: Φ i t = α i t, w i t α i t, w i t

28 Quaternions Instead of blending matrices {M 0,, M n 1 } and then normalizing using SVD, we can blend the quaternions and then normalize them: For each M i, compute the quaternion rep. (α i, w i ) Interpolate/Approximate the quaternions: Note:» Linear Interpolation Using» Catmull-Rom SVD, we interpolated Interpolation in the (9 = 3 3)-dimensional space» Uniform of matrices Cubic and B-Spline then normalized. Approximation With Set quaternions the value of we the interpolate in-between the rotation 4-dimensional to be the space of normalized quaternions quaternion: and normalize. Φ i t = α i t, w i t α i t, w i t

29 Quaternions As with points on the circle/sphere, this type of interpolation/approximation has the limitation: Uniform sampling in quaternion space does not result in uniform sampling in rotation space. Φ t = Φ t Φ t p 0 p 1 Φ t = 1 t p 0 + tp 1

30 Quaternions As with points on the circle/sphere, this type of interpolation/approximation has the limitation: Uniform sampling in quaternion space does not result in uniform sampling in rotation space. Additionally, since R q = R(q) there are two different quaternions we can associate with a rotation, so the mapping is not well-defined.

31 Overview Cross Products and (Skew) Symmetric Matrices Quaternions The Exponential Map

32 Geodesics Given a surface S(u, v) a geodesic is a curve that is (locally) the shortest path between two points. S u, v = cos u cos v, sin u, cos u sin v

33 Geodesics Given a manifold (a d-dimensional surface) a geodesic is a curve that is (locally) the shortest path between two points.

34 Tangent Spaces Given a curve C(t), the tangent line to the curve at a point p 0 = C(t 0 ) is the line that most closely approximates the curve C(t) at the point p 0. C(t) C(t 0 ) Tangent Line

35 Tangent Spaces Given a curve C(t), the tangent line to the curve at a point p 0 = C(t 0 ) is the line that most closely approximates the curve C(t) at the point p 0. This is the line through p 0 with direction C (t 0 ). C(t 0 ) C (t 0 ) C(t) Tangent Line

36 Tangent Spaces Given a surface S(u, v) the tangent plane to the curve at a point p 0 = S(u 0, v 0 ) is the plane that most closely approximates S u, v at the point p 0. S(u 0, v 0 ) S u, v = cos u cos v, sin u, cos u sin v

37 Tangent Spaces Given a surface S(u, v) the tangent plane to the curve at a point p 0 = S(u 0, v 0 ) is the plane that most closely approximates S u, v at the point p 0. This is the plane through p 0, parallel to the plane spanned by: S u,v u u 0,v 0 and S u,v v u 0,v 0 S u S v S(u 0, v 0 ) S u, v = cos u cos v, sin u, cos u sin v

38 Tangent Spaces Given a manifold (a d-dimensional surface) the tangent space to the manifold at a point p 0 on the manifold is the d-dimensional plane that most closely approximates the manifold at the point p 0.

39 The Exponential Map Given a curve C(t), the exponential at p 0 = C(t 0 ) is a map that sends points in the tangent space of p 0 to the curve C(t). C(t 0 ) exp(p 0, v) C(t) Tangent Line

40 The Exponential Map Given a curve C(t), the exponential at p 0 = C(t 0 ) is a map that sends points in the tangent space of p 0 to the curve C(t). The distance along the curve of a point exp(p 0, v) from p 0 is equal to v. C(t 0 ) exp(p 0, v) C(t) Tangent Line

41 The Exponential Map Given a surface S(u, v), the exponential at the point p 0 = S(u 0, v 0 ) is a map that sends points in the tangent plane of p 0 to the surface S(u, v). exp(p 0, w) S(u 0, v 0 )

42 The Exponential Map Given a surface S(u, v), the exponential at the point p 0 = S(u 0, v 0 ) is a map that sends points in the tangent plane of p 0 to the surface S(u, v). If we fix a vector w in the tangent space of p 0, then the curve exp(p 0, tw) will be a geodesic, leaving p 0 in direction w and will have length equal to tw. w p 0

43 The Exponential Map Given a surface S(u, v), the exponential at the point p 0 = S(u 0, v 0 ) is a map that sends points in the tangent plane of p 0 to the surface S(u, v). If we fix a vector w in the tangent space of p 0, then the curve exp(p 0, tw) will be a geodesic, leaving p 0 in direction w and will have length equal to tw. exp(p 0, tw) w p 0

44 The Exponential Map Given a surface S(u, v), the exponential at the point p 0 = S(u 0, v 0 ) is a map that sends points in the tangent plane of p 0 to the surface S(u, v). If we fix a vector w in the tangent space of p 0, then the curve exp(p 0, tw) will be a geodesic, leaving p 0 in direction w and will have length equal to tw. p 0 w

45 The Exponential Map Given a surface S(u, v), the exponential at the point p 0 = S(u 0, v 0 ) is a map that sends points in the tangent plane of p 0 to the surface S(u, v). If we fix a vector w in the tangent space of p 0, then the curve exp(p 0, tw) will be a geodesic, leaving p 0 in direction w and will have length equal to tw. exp(p 0, tw) p 0 w

46 The Exponential Map Given a surface S(u, v), the exponential at the point p 0 = S(u 0, v 0 ) is a map that sends points in the tangent plane of p 0 to the surface S(u, v). If we fix a vector w in the tangent space of p 0, then the curve exp(p 0, tw) will be a geodesic, leaving p 0 in direction w and will have length equal to tw. w p 0

47 The Exponential Map Given a surface S(u, v), the exponential at the point p 0 = S(u 0, v 0 ) is a map that sends points in the tangent plane of p 0 to the surface S(u, v). If we fix a vector w in the tangent space of p 0, then the curve exp(p 0, tw) will be a geodesic, leaving p 0 in direction w and will have length equal to tw. w exp(p 0, tw) p 0

48 The Exponential Map Given a manifold (a d-dimensional surface), the exponential at point p 0 on the manifold is a map that sends points in the tangent plane of p 0 to the manifold. If we fix a vector w in the tangent space of p 0, then the curve exp(p 0, tw) will be a geodesic, leaving p 0 in direction w and will have length equal to tw.

49 The Logarithm Map For a point p 0 on a curve/surface/manifold, the logarithm is the inverse of the exponential, sending points on the curve/surface/manifold back into the tangent space of p 0.

50 The Exponential Map Example: Let C be the unit circle, the exponential map exp 1,0, t is the map sending the point t to the point cos t, sin t. exp 1,0, t t (1,0)

51 The Exponential Map Example: Let C be the unit circle, the exponential map exp 1,0, t is the map sending the point t to the point cos t, sin t. exp 1,0, t Note: The exponential map is many-to-one: exp 1,0, t = exp 1,0, t + 2kπ so the logarithm is not unique. t (1,0)

52 The Exponential Map Fact: Let GL(n) be the space of n n invertible matrices, exp(id., M) is the map sending an arbitrary matrix M to an invertible one. Let SO(n) be the space of n n rotation matrices, exp Id., M is the map sending a skew-symmetric matrix M to a rotation.

53 The Exponential Map How do we actually compute the exponential map?

54 The Exponential Map How do we actually compute the exponential map? It is difficult to find a closed form solution, but for matrices we can use a Taylor series approximation: exp Id., A = Id. +A + 1 2! A n! An + In a similar manner, we can define the logarithm: ln Id., A = A Id. A Id n+1 A Id. n + n

55 The Exponential Map Properties: exp Id., 0 = Id. exp Id.,tA t t=0 = A exp Id., ln Id., A = A exp Id., A + B = exp(id., A) exp(id., B) if and only if AB = BA exp(id., A) = exp Id., A exp(id., αa) = exp Id., A 1 α

56 Rotation Interpolation/Approximation Given a collection of rotations {M 0,, M n 1 } we can generate a curve passing through/near the matrices in the following manner: For each M i, compute the logarithm ln(id., M i )

57 Rotation Interpolation/Approximation Given a collection of rotations {M 0,, M n 1 } we can generate a curve passing through/near the matrices in the following manner: For each M i, compute the logarithm ln(id., M i ) Interpolate/Approximate the logarithms:

58 Rotation Interpolation/Approximation Given a collection of rotations {M 0,, M n 1 } we can generate a curve passing through/near the matrices in the following manner: For each M i, compute the logarithm ln(id., M i ) Interpolate/Approximate the logarithms:» Linear Interpolation: LN i t = 1 t ln Id., M i + ln(id., M i+1 )

59 Rotation Interpolation/Approximation Given a collection of rotations {M 0,, M n 1 } we can generate a curve passing through/near the matrices in the following manner: For each M i, compute the logarithm ln(id., M i ) Interpolate/Approximate the logarithms:» Linear Interpolation:» Catmull-Rom Interpolation: LN i t = CR 0 t ln Id., M k 1 + CR 1 t ln(id., M k ) + CR 1 t ln(id., M k+1 ) + CR 1 t ln(id., M k+2 )

60 Rotation Interpolation/Approximation Given a collection of rotations {M 0,, M n 1 } we can generate a curve passing through/near the matrices in the following manner: For each M i, compute the logarithm ln(id., M i ) Interpolate/Approximate the logarithms:» Linear Interpolation:» Catmull-Rom Interpolation:» Uniform Cubic B-Spline Approximation: LN i t = B 0,3 t ln Id., M k 1 + B 1,3 t ln Id., M k + B 2,3 t ln Id., M k+1 + B 3,3 t ln Id., M k+2

61 Rotation Interpolation/Approximation Given a collection of rotations {M 0,, M n 1 } we can generate a curve passing through/near the matrices in the following manner: For each M i, compute the logarithm ln(id., M i ) Interpolate/Approximate the logarithms:» Linear Interpolation:» Catmull-Rom Interpolation:» Uniform Cubic B-Spline Approximation: Set the value of the in-between rotation to be the exponent of the blended logarithms: Φ i t = exp Id., LN i t

62 Rotation Interpolation/Approximation Given a collection of rotations {M 0,, M n 1 } we can generate a curve passing through/near the matrices in the following manner: For each M i, compute the logarithm ln(id., M i ) Note: Interpolate/Approximate the logarithms: Since» the Linear logarithm Interpolation: of rotations is a skew-symmetric matrix, and since» Catmull-Rom skew-symmetric Interpolation: matrices are closed under addition and scaling,» Uniform the weighted Cubic B-Spline average LN Approximation: i (t) is also skewsymmetric, Set the so value its exponent of the in-between has to a rotation. rotation to be the We exponent are computing of the blended the logarithms: exponential and Φ i t = exp Id., LN i t logarithm relative to the identity. Is that the best choice?

63 Parameterization (Limitation) Just because we move on a straight line (shortest path) between points in the parameter domain, doesn t mean we move on a straight line (shortest path) between points in the space of rotations. s

64 Parameterization (Limitation) Just because we move on a straight line (shortest path) between points in the parameter domain, doesn t mean we move on a straight line (shortest path) between points in the space of rotations. s In general, because the parameter domain is flat and the sphere is not, there is no map that will take all straight lines to shortest paths. We don t need a map that takes all straight lines to shortest path. We only need a map that takes all straight lines from a fixed starting point!

65 Parameterization (Limitation) We can flatten the domain around the starting point so that straight lines from the center point become straight lines on our surface. s In practice, this creates a chicken-and-egg problem where we would like to change the tangent space as we move along the curve.

66 Parameterization (Limitation) What happens if we just use the tangent space of the starting point to do the blending? Interpolating splines: The curve won t be smooth. Approximating splines: The curve won t be continuous.

67 Summary In order to define in-between frames for an animation, we need to interpolate/approximate the transformations specified in the key-frames. For translation, we can just use splines For rotations, we need to ensure that the inbetween transformations are also rotations: Euler angles Exponential map In-between transformations are guaranteed to be rotations SVD Quaternions Normalize in-between transformations to turn them into the nearest rotations

Animating Transformations

Animating Transformations Animating Transformations Connelly Barnes CS445: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser, Adam Finkelstein and David Dobkin Overview Rotations and

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

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

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

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

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

Parametric Surfaces. Michael Kazhdan ( /657) HB , FvDFH 11.2

Parametric Surfaces. Michael Kazhdan ( /657) HB , FvDFH 11.2 Parametric Surfaces Michael Kazhdan (601.457/657) HB 10.6 -- 10.9, 10.1 FvDFH 11.2 Announcement OpenGL review session: When: Wednesday (10/1) @ 7:00-9:00 PM Where: Olin 05 Cubic Splines Given a collection

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

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

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

For each question, indicate whether the statement is true or false by circling T or F, respectively.

For each question, indicate whether the statement is true or false by circling T or F, respectively. True/False For each question, indicate whether the statement is true or false by circling T or F, respectively. 1. (T/F) Rasterization occurs before vertex transformation in the graphics pipeline. 2. (T/F)

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

Part II: OUTLINE. Visualizing Quaternions. Part II: Visualizing Quaternion Geometry. The Spherical Projection Trick: Visualizing unit vectors.

Part II: OUTLINE. Visualizing Quaternions. Part II: Visualizing Quaternion Geometry. The Spherical Projection Trick: Visualizing unit vectors. Visualizing Quaternions Part II: Visualizing Quaternion Geometry Andrew J. Hanson Indiana University Part II: OUTLINE The Spherical Projection Trick: Visualizing unit vectors. Quaternion Frames Quaternion

More information

Animation. Keyframe animation. CS4620/5620: Lecture 30. Rigid motion: the simplest deformation. Controlling shape for animation

Animation. Keyframe animation. CS4620/5620: Lecture 30. Rigid motion: the simplest deformation. Controlling shape for animation Keyframe animation CS4620/5620: Lecture 30 Animation Keyframing is the technique used for pose-to-pose animation User creates key poses just enough to indicate what the motion is supposed to be Interpolate

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

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

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

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

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

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

Animation. CS 4620 Lecture 33. Cornell CS4620 Fall Kavita Bala

Animation. CS 4620 Lecture 33. Cornell CS4620 Fall Kavita Bala Animation CS 4620 Lecture 33 Cornell CS4620 Fall 2015 1 Announcements Grading A5 (and A6) on Monday after TG 4621: one-on-one sessions with TA this Friday w/ prior instructor Steve Marschner 2 Quaternions

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

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

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

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

Animation. CS 4620 Lecture 32. Cornell CS4620 Fall Kavita Bala

Animation. CS 4620 Lecture 32. Cornell CS4620 Fall Kavita Bala Animation CS 4620 Lecture 32 Cornell CS4620 Fall 2015 1 What is animation? Modeling = specifying shape using all the tools we ve seen: hierarchies, meshes, curved surfaces Animation = specifying shape

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

Freeform Curves on Spheres of Arbitrary Dimension

Freeform Curves on Spheres of Arbitrary Dimension Freeform Curves on Spheres of Arbitrary Dimension Scott Schaefer and Ron Goldman Rice University 6100 Main St. Houston, TX 77005 sschaefe@rice.edu and rng@rice.edu Abstract Recursive evaluation procedures

More information

Curve Subdivision in SE(2)

Curve Subdivision in SE(2) Curve Subdivision in SE(2) Jan Hakenberg, ETH Zürich 2018-07-26 Figure: A point in the special Euclidean group SE(2) consists of a position in the plane and a heading. The figure shows two rounds of cubic

More information

Motivation. Parametric Curves (later Surfaces) Outline. Tangents, Normals, Binormals. Arclength. Advanced Computer Graphics (Fall 2010)

Motivation. Parametric Curves (later Surfaces) Outline. Tangents, Normals, Binormals. Arclength. Advanced Computer Graphics (Fall 2010) Advanced Computer Graphics (Fall 2010) CS 283, Lecture 19: Basic Geometric Concepts and Rotations Ravi Ramamoorthi http://inst.eecs.berkeley.edu/~cs283/fa10 Motivation Moving from rendering to simulation,

More information

Curves and Surfaces Computer Graphics I Lecture 9

Curves and Surfaces Computer Graphics I Lecture 9 15-462 Computer Graphics I Lecture 9 Curves and Surfaces Parametric Representations Cubic Polynomial Forms Hermite Curves Bezier Curves and Surfaces [Angel 10.1-10.6] February 19, 2002 Frank Pfenning Carnegie

More information

3.3 Interpolation of rotations represented by quaternions

3.3 Interpolation of rotations represented by quaternions 3 S 3.3 Interpolation of rotations represented by quaternions : set of unit quaternions ; S :set of unit 3D vectors Interpolation will be performed on 3 S (direct linear interpolation produces nonlinear

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

Lecture «Robot Dynamics»: Kinematics 2

Lecture «Robot Dynamics»: Kinematics 2 Lecture «Robot Dynamics»: Kinematics 2 151-851- V lecture: CAB G11 Tuesday 1:15 12:, every week exercise: HG G1 Wednesday 8:15 1:, according to schedule (about every 2nd week) office hour: LEE H33 Friday

More information

In this course we will need a set of techniques to represent curves and surfaces in 2-d and 3-d. Some reasons for this include

In this course we will need a set of techniques to represent curves and surfaces in 2-d and 3-d. Some reasons for this include Parametric Curves and Surfaces In this course we will need a set of techniques to represent curves and surfaces in 2-d and 3-d. Some reasons for this include Describing curves in space that objects move

More information

Rotation and Orientation: Fundamentals. Perelyaev Sergei VARNA, 2011

Rotation and Orientation: Fundamentals. Perelyaev Sergei VARNA, 2011 Rotation and Orientation: Fundamentals Perelyaev Sergei VARNA, 0 What is Rotation? Not intuitive Formal definitions are also confusing Many different ways to describe Rotation (direction cosine) matri

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

Curves D.A. Forsyth, with slides from John Hart

Curves D.A. Forsyth, with slides from John Hart Curves D.A. Forsyth, with slides from John Hart Central issues in modelling Construct families of curves, surfaces and volumes that can represent common objects usefully; are easy to interact with; interaction

More information

CALCULATING TRANSFORMATIONS OF KINEMATIC CHAINS USING HOMOGENEOUS COORDINATES

CALCULATING TRANSFORMATIONS OF KINEMATIC CHAINS USING HOMOGENEOUS COORDINATES CALCULATING TRANSFORMATIONS OF KINEMATIC CHAINS USING HOMOGENEOUS COORDINATES YINGYING REN Abstract. In this paper, the applications of homogeneous coordinates are discussed to obtain an efficient model

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 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

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

Intro to Curves Week 1, Lecture 2

Intro to Curves Week 1, Lecture 2 CS 536 Computer Graphics Intro to Curves Week 1, Lecture 2 David Breen, William Regli and Maxim Peysakhov Department of Computer Science Drexel University Outline Math review Introduction to 2D curves

More information

3D Transformations. CS 4620 Lecture Kavita Bala w/ prior instructor Steve Marschner. Cornell CS4620 Fall 2015 Lecture 11

3D Transformations. CS 4620 Lecture Kavita Bala w/ prior instructor Steve Marschner. Cornell CS4620 Fall 2015 Lecture 11 3D Transformations CS 4620 Lecture 11 1 Announcements A2 due tomorrow Demos on Monday Please sign up for a slot Post on piazza 2 Translation 3 Scaling 4 Rotation about z axis 5 Rotation about x axis 6

More information

Rotation parameters for model building and stable parameter inversion in orthorhombic media Cintia Lapilli* and Paul J. Fowler, WesternGeco.

Rotation parameters for model building and stable parameter inversion in orthorhombic media Cintia Lapilli* and Paul J. Fowler, WesternGeco. otation parameters for model building and stable parameter inversion in orthorhombic media Cintia Lapilli* and Paul J Fowler, WesternGeco Summary Symmetry groups commonly used to describe seismic anisotropy

More information

2D/3D Geometric Transformations and Scene Graphs

2D/3D Geometric Transformations and Scene Graphs 2D/3D Geometric Transformations and Scene Graphs Week 4 Acknowledgement: The course slides are adapted from the slides prepared by Steve Marschner of Cornell University 1 A little quick math background

More information

Game Engineering: 2D

Game Engineering: 2D Game Engineering: 2D CS420-2010F-07 Objects in 2D David Galles Department of Computer Science University of San Francisco 07-0: Representing Polygons We want to represent a simple polygon Triangle, rectangle,

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

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

Assignment 4: Mesh Parametrization

Assignment 4: Mesh Parametrization CSCI-GA.3033-018 - Geometric Modeling Assignment 4: Mesh Parametrization In this exercise you will Familiarize yourself with vector field design on surfaces. Create scalar fields whose gradients align

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

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

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

COMP 175 COMPUTER GRAPHICS. Ray Casting. COMP 175: Computer Graphics April 26, Erik Anderson 09 Ray Casting

COMP 175 COMPUTER GRAPHICS. Ray Casting. COMP 175: Computer Graphics April 26, Erik Anderson 09 Ray Casting Ray Casting COMP 175: Computer Graphics April 26, 2018 1/41 Admin } Assignment 4 posted } Picking new partners today for rest of the assignments } Demo in the works } Mac demo may require a new dylib I

More information

Information Coding / Computer Graphics, ISY, LiTH. Splines

Information Coding / Computer Graphics, ISY, LiTH. Splines 28(69) Splines Originally a drafting tool to create a smooth curve In computer graphics: a curve built from sections, each described by a 2nd or 3rd degree polynomial. Very common in non-real-time graphics,

More information

Interlude: Solving systems of Equations

Interlude: Solving systems of Equations Interlude: Solving systems of Equations Solving Ax = b What happens to x under Ax? The singular value decomposition Rotation matrices Singular matrices Condition number Null space Solving Ax = 0 under

More information

Sung-Eui Yoon ( 윤성의 )

Sung-Eui Yoon ( 윤성의 ) CS480: Computer Graphics Curves and Surfaces Sung-Eui Yoon ( 윤성의 ) Course URL: http://jupiter.kaist.ac.kr/~sungeui/cg Today s Topics Surface representations Smooth curves Subdivision 2 Smooth Curves and

More information

Differential Geometry: Circle Patterns (Part 1) [Discrete Conformal Mappinngs via Circle Patterns. Kharevych, Springborn and Schröder]

Differential Geometry: Circle Patterns (Part 1) [Discrete Conformal Mappinngs via Circle Patterns. Kharevych, Springborn and Schröder] Differential Geometry: Circle Patterns (Part 1) [Discrete Conformal Mappinngs via Circle Patterns. Kharevych, Springborn and Schröder] Preliminaries Recall: Given a smooth function f:r R, the function

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

Interpolating/approximating pp gcurves

Interpolating/approximating pp gcurves Chap 3 Interpolating Values 1 Outline Interpolating/approximating pp gcurves Controlling the motion of a point along a curve Interpolation of orientation Working with paths Interpolation between key frames

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

3D Transformations. CS 4620 Lecture 10. Cornell CS4620 Fall 2014 Lecture Steve Marschner (with previous instructors James/Bala)

3D Transformations. CS 4620 Lecture 10. Cornell CS4620 Fall 2014 Lecture Steve Marschner (with previous instructors James/Bala) 3D Transformations CS 4620 Lecture 10 1 Translation 2 Scaling 3 Rotation about z axis 4 Rotation about x axis 5 Rotation about y axis 6 Properties of Matrices Translations: linear part is the identity

More information

Computer Vision. 2. Projective Geometry in 3D. Lars Schmidt-Thieme

Computer Vision. 2. Projective Geometry in 3D. Lars Schmidt-Thieme Computer Vision 2. Projective Geometry in 3D Lars Schmidt-Thieme Information Systems and Machine Learning Lab (ISMLL) Institute for Computer Science University of Hildesheim, Germany 1 / 26 Syllabus Mon.

More information

CS 536 Computer Graphics Intro to Curves Week 1, Lecture 2

CS 536 Computer Graphics Intro to Curves Week 1, Lecture 2 CS 536 Computer Graphics Intro to Curves Week 1, Lecture 2 David Breen, William Regli and Maxim Peysakhov Department of Computer Science Drexel University 1 Outline Math review Introduction to 2D curves

More information

Linear algebra deals with matrixes: two-dimensional arrays of values. Here s a matrix: [ x + 5y + 7z 9x + 3y + 11z

Linear algebra deals with matrixes: two-dimensional arrays of values. Here s a matrix: [ x + 5y + 7z 9x + 3y + 11z Basic Linear Algebra Linear algebra deals with matrixes: two-dimensional arrays of values. Here s a matrix: [ 1 5 ] 7 9 3 11 Often matrices are used to describe in a simpler way a series of linear equations.

More information

You will have the entire period (until 9:00pm) to complete the exam, although the exam is designed to take less time.

You will have the entire period (until 9:00pm) to complete the exam, although the exam is designed to take less time. Page 1 of 6 Exam November 1, 2006 This exam is closed book and closed notes. You will have the entire period (until 9:00pm) to complete the exam, although the exam is designed to take less time. Please

More information

Revision Problems for Examination 2 in Algebra 1

Revision Problems for Examination 2 in Algebra 1 Centre for Mathematical Sciences Mathematics, Faculty of Science Revision Problems for Examination in Algebra. Let l be the line that passes through the point (5, 4, 4) and is at right angles to the plane

More information

Animations. Hakan Bilen University of Edinburgh. Computer Graphics Fall Some slides are courtesy of Steve Marschner and Kavita Bala

Animations. Hakan Bilen University of Edinburgh. Computer Graphics Fall Some slides are courtesy of Steve Marschner and Kavita Bala Animations Hakan Bilen University of Edinburgh Computer Graphics Fall 2017 Some slides are courtesy of Steve Marschner and Kavita Bala Animation Artistic process What are animators trying to do? What tools

More information

Grassmannians and Random Polygons

Grassmannians and Random Polygons Grassmannians and Random Polygons Clayton Shonkwiler Colorado State University April 17, 2015 Polygons Definition A polygon given by vertices v 1,..., v n is a collection of line segments in the plane

More information

Monday, 12 November 12. Matrices

Monday, 12 November 12. Matrices Matrices Matrices Matrices are convenient way of storing multiple quantities or functions They are stored in a table like structure where each element will contain a numeric value that can be the result

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

Linear and Affine Transformations Coordinate Systems

Linear and Affine Transformations Coordinate Systems Linear and Affine Transformations Coordinate Systems Recall A transformation T is linear if Recall A transformation T is linear if Every linear transformation can be represented as matrix Linear Transformation

More information

CS F-07 Objects in 2D 1

CS F-07 Objects in 2D 1 CS420-2010F-07 Objects in 2D 1 07-0: Representing Polgons We want to represent a simple polgon Triangle, rectangle, square, etc Assume for the moment our game onl uses these simple shapes No curves for

More information

CT5510: Computer Graphics. Transformation BOCHANG MOON

CT5510: Computer Graphics. Transformation BOCHANG MOON CT5510: Computer Graphics Transformation BOCHANG MOON 2D Translation Transformations such as rotation and scale can be represented using a matrix M.., How about translation? No way to express this using

More information

Chapter 18. Geometric Operations

Chapter 18. Geometric Operations Chapter 18 Geometric Operations To this point, the image processing operations have computed the gray value (digital count) of the output image pixel based on the gray values of one or more input pixels;

More information

Today. Today. Introduction. Matrices. Matrices. Computergrafik. Transformations & matrices Introduction Matrices

Today. Today. Introduction. Matrices. Matrices. Computergrafik. Transformations & matrices Introduction Matrices Computergrafik Matthias Zwicker Universität Bern Herbst 2008 Today Transformations & matrices Introduction Matrices Homogeneous Affine transformations Concatenating transformations Change of Common coordinate

More information

Know it. Control points. B Spline surfaces. Implicit surfaces

Know it. Control points. B Spline surfaces. Implicit surfaces Know it 15 B Spline Cur 14 13 12 11 Parametric curves Catmull clark subdivision Parametric surfaces Interpolating curves 10 9 8 7 6 5 4 3 2 Control points B Spline surfaces Implicit surfaces Bezier surfaces

More information

ME 115(a): Final Exam (Winter Quarter 2009/2010)

ME 115(a): Final Exam (Winter Quarter 2009/2010) ME 115(a): Final Exam (Winter Quarter 2009/2010) Instructions 1. Limit your total time to 5 hours. That is, it is okay to take a break in the middle of the exam if you need to ask a question, or go to

More information

Splines. Connecting the Dots

Splines. Connecting the Dots Splines or: Connecting the Dots Jens Ogniewski Information Coding Group Linköping University Before we start... Some parts won t be part of the exam Basically all that is not described in the book. More

More information

METR 4202: Advanced Control & Robotics

METR 4202: Advanced Control & Robotics Position & Orientation & State t home with Homogenous Transformations METR 4202: dvanced Control & Robotics Drs Surya Singh, Paul Pounds, and Hanna Kurniawati Lecture # 2 July 30, 2012 metr4202@itee.uq.edu.au

More information

Short on camera geometry and camera calibration

Short on camera geometry and camera calibration Short on camera geometry and camera calibration Maria Magnusson, maria.magnusson@liu.se Computer Vision Laboratory, Department of Electrical Engineering, Linköping University, Sweden Report No: LiTH-ISY-R-3070

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

A second order algorithm for orthogonal projection onto curves and surfaces

A second order algorithm for orthogonal projection onto curves and surfaces A second order algorithm for orthogonal projection onto curves and surfaces Shi-min Hu and Johannes Wallner Dept. of Computer Science and Technology, Tsinghua University, Beijing, China shimin@tsinghua.edu.cn;

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

Graphics and Interaction Transformation geometry and homogeneous coordinates

Graphics and Interaction Transformation geometry and homogeneous coordinates 433-324 Graphics and Interaction Transformation geometry and homogeneous coordinates Department of Computer Science and Software Engineering The Lecture outline Introduction Vectors and matrices Translation

More information

Matrices. Chapter Matrix A Mathematical Definition Matrix Dimensions and Notation

Matrices. Chapter Matrix A Mathematical Definition Matrix Dimensions and Notation Chapter 7 Introduction to Matrices This chapter introduces the theory and application of matrices. It is divided into two main sections. Section 7.1 discusses some of the basic properties and operations

More information

Geometric Algebra for Computer Graphics

Geometric Algebra for Computer Graphics John Vince Geometric Algebra for Computer Graphics 4u Springer Contents Preface vii 1 Introduction 1 1.1 Aims and objectives of this book 1 1.2 Mathematics for CGI software 1 1.3 The book's structure 2

More information

CS 4621 PPA3: Animation

CS 4621 PPA3: Animation CS 4621 PPA3: Animation out: Saturday 19 November 2011 due: Friday 2 December 2011 1 Introduction There are two parts to this assignment. In the first part, you will complete the implementation of key

More information

Who has worked on a voxel engine before? Who wants to? My goal is to give the talk I wish I would have had before I started on our procedural engine.

Who has worked on a voxel engine before? Who wants to? My goal is to give the talk I wish I would have had before I started on our procedural engine. 1 Who has worked on a voxel engine before? Who wants to? My goal is to give the talk I wish I would have had before I started on our procedural engine. Three parts to this talk. A lot of content, so I

More information

COMP30019 Graphics and Interaction Transformation geometry and homogeneous coordinates

COMP30019 Graphics and Interaction Transformation geometry and homogeneous coordinates COMP30019 Graphics and Interaction Transformation geometry and homogeneous coordinates Department of Computer Science and Software Engineering The Lecture outline Introduction Vectors and matrices Translation

More information

Computer Vision I - Appearance-based Matching and Projective Geometry

Computer Vision I - Appearance-based Matching and Projective Geometry Computer Vision I - Appearance-based Matching and Projective Geometry Carsten Rother 05/11/2015 Computer Vision I: Image Formation Process Roadmap for next four lectures Computer Vision I: Image Formation

More information

Tentti/Exam Midterm 2/Välikoe 2, December

Tentti/Exam Midterm 2/Välikoe 2, December 1: 2: 3: Extra: Total 1-3: / 23 4: 5: 6: Total 4-6: / 20 Aalto ME-C3100 Computer Graphics, Fall 2015 Lehtinen / Kemppinen, Ollikainen, Puomio Tentti/Exam Midterm 2/Välikoe 2, December 16 2015 Name, student

More information

Homework #2. Hidden Surfaces, Projections, Shading and Texture, Ray Tracing, and Parametric Curves

Homework #2. Hidden Surfaces, Projections, Shading and Texture, Ray Tracing, and Parametric Curves Computer Graphics Instructor: Brian Curless CSE 457 Spring 2013 Homework #2 Hidden Surfaces, Projections, Shading and Texture, Ray Tracing, and Parametric Curves Assigned: Sunday, May 12 th Due: Thursday,

More information

R3DG Features: Relative 3D Geometry-based Skeletal Representations for Human Action Recognition

R3DG Features: Relative 3D Geometry-based Skeletal Representations for Human Action Recognition R3DG Features: Relative 3D Geometry-based Skeletal Representations for Human Action Recognition Raviteja Vemulapalli 1, Felipe Arrate 2, Rama Chellappa 1 1 Center for Automation Research, UMIACS University

More information

Final Exam CS 184: Foundations of Computer Graphics page 1 of 14 Fall 2016 Prof. James O Brien

Final Exam CS 184: Foundations of Computer Graphics page 1 of 14 Fall 2016 Prof. James O Brien Final Exam CS 184: Foundations of Computer Graphics page 1 of 14 Student Name: Student ID: Instructions: Read them carefully The exam begins at 3:10pm and ends at 6:00pm. You must turn your exam in when

More information

Multi-level Partition of Unity Implicits

Multi-level Partition of Unity Implicits Multi-level Partition of Unity Implicits Diego Salume October 23 rd, 2013 Author: Ohtake, et.al. Overview Goal: Use multi-level partition of unity (MPU) implicit surface to construct surface models. 3

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

2D Spline Curves. CS 4620 Lecture 18

2D Spline Curves. CS 4620 Lecture 18 2D Spline Curves CS 4620 Lecture 18 2014 Steve Marschner 1 Motivation: smoothness In many applications we need smooth shapes that is, without discontinuities So far we can make things with corners (lines,

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