Quaternions and Exponentials
|
|
- Cori McBride
- 5 years ago
- Views:
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 Connelly Barnes CS445: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser, Adam Finkelstein and David Dobkin Overview Rotations and
More informationQuaternion 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 informationLecture 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 informationQuaternions & 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 informationQuaternions 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 informationVisualizing 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 informationParametric 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 informationCS612 - 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 informationApplications 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 informationVisual 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 informationFor 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 informationQuaternions 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 informationPart 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 informationAnimation. 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 informationTransformations: 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 informationAH 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 informationVisualizing 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 informationCMSC 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 informationAnimation 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 information12.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 informationQuaternions 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 informationAnimation. 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 informationQuaternions 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 informationInertial 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 informationa 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 information3D 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 informationAnimation. 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 informationTransformation. 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 informationFreeform 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 informationCurve 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 informationMotivation. 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 informationCurves 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 information3.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 informationQuaternion 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 informationLecture «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 informationIn 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 informationRotation 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 information3D 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 informationCurves 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 informationCALCULATING 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 informationCS 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 informationTransformations 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 informationCS 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 informationIntro 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 information3D 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 informationRotation 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 information2D/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 informationGame 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 informationAnimating 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 informationComputer 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 informationAssignment 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 informationCS770/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 information521493S 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 informationAnimation 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 informationCOMP 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 informationInformation 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 informationInterlude: 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 informationSung-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 informationDifferential 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 informationSUMMARY. 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 informationInterpolating/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 informationQuaternions 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 information3D 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 informationComputer 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 informationCS 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 informationLinear 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 informationYou 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 informationRevision 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 informationAnimations. 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 informationGrassmannians 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 informationMonday, 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 informationCS184: 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 informationLinear 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 informationCS 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 informationCT5510: 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 informationChapter 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 informationToday. 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 informationKnow 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 informationME 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 informationSplines. 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 informationMETR 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 informationShort 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 informationCS354 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 informationA 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 information1 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 informationGraphics 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 informationMatrices. 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 informationGeometric 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 informationCS 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 informationWho 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 informationCOMP30019 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 informationComputer 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 informationTentti/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 informationHomework #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 informationR3DG 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 informationFinal 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 informationMulti-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 informationME 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 information2D 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 informationRotations (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