INF3320 Computer Graphics and Discrete Geometry

Size: px
Start display at page:

Download "INF3320 Computer Graphics and Discrete Geometry"

Transcription

1 INF3320 Computer Graphics and Discrete Geometry Transforms (part II) Christopher Dyken and Martin Reimers Page 1

2 Transforms (part II) Real Time Rendering book: Transforms (Chapter 4) The Red Book: Viewing (Chapter 3) Homogeneous Coordinates... (Appendix F) Page 2

3 Recap Page 3

4 Vertex transforms Page 4

5 Last time - highlights Coordinate systems Homogenous coordinates and transforms OpenGL matrix stacks Modelview transforms Page 5

6 Modelview transforms Transform vertex coordinates to camera coordinate system Page 6

7 Recap model transforms Two ways to think of model transforms: move local (drawing) coordinate system (read top-down) move objects in global coordinate-system (read bottom-up) glutwiresphere(1.0, 20, 16); /* draw sun */ glrotatef ( year, 0.0, 1.0, 0.0); gltranslatef (2.0, 0.0, 0.0); glrotatef ( day, 0.0, 1.0, 0.0); glutwiresphere(0.2, 10, 8); /* draw smaller planet */ Example on page 173 Page 7

8 Creating Transform Matrices Page 8

9 Designing transforms Example: rotation aound a point Page 9

10 OpenGL Mathematics - the glm templates C++ header-only templates for OpenGL mathematics Math utilities, Vectors, Matrices, Transformations Based on C/GLSL, can use in C++, shaders, CUDA etc Replacements for deprecated functionality (e.g. matrix stacks) E.g make and use a homogenous translation matrix: #include <glm/glm.hpp> //vec3, vec4, ivec4, mat4 glm::mat4 translation = glm::translate(glm::mat4(1.0f), glm::vec3(1.0f, 0.0f, 0.0f)); glm::vec4 point = glm::vec4(1.0f, 0.0f, 0.0f,1.0f)); glm::vec4 translated_point = translation*point; Page 10

11 Displace p with the vector t, p = p + t Translation p z Translation transform matrix x x T (x, y, z) = y z T 1 (x, y, z) = y z OpenGL gltranslate(x,y,z) multiplies the current matrix with T (x, y, z) glm::translate(mat,vec) multiplies mat (matrix) with T (vec) Page 11 t y p x

12 Rotation Rotation in the xy plane: R z (θ) Describe p in polar coordinates, p = [ x, y ] T = ρ [ cos(φ), sin(φ) ] T p is found by adding θ to the angle p = ρ [ cos(φ + θ), sin(φ + θ) ] T y p φ+θ and if we expand the expressions and substitute, we get x = x cos(θ) y sin(θ), y = x sin(θ) + y sin(θ) which in matrix form is [ ] [ ] [ ] x cos(θ) sin(θ) x y = sin(θ) cos(θ) y φ θ p x Page 12

13 Rotation about the x-axis (in the yz-plane) R x (θ) = 0 cos θ sin θ 0 0 sin θ cos θ 0 glrotate(θ, 1, 0, 0) Rotation about the y-axis (in the zx-plane) cos θ 0 sin θ 0 R y (θ) = sin θ 0 cos θ 0 glrotate(θ, 0, 1, 0) Rotation about the z-axis (in the xy-plane) cos θ sin θ 0 0 R z (θ) = sin θ cos θ glrotate(θ, 0, 0, 1) Page 13

14 Rotation θ radians about an arbitrary axis r = [a x, a y, a z ] One strategy is to decompose the operation to simpler operations: 1. Rotate about the x-axis s.t. r = R x (φ x )r is in the y =0-plane: φ x = ([0, a y, a z ], z) 2. rotate about the y-axis s.t. R y (φ y )r is in the x = 0 plane: φ y = ([a x, 0, [a y, a z ] ], z) 3. perform the intended rotation about the z-axis: R z (θ) 4. undo the rotation about the y-axis (R y ( φ y )) 5. undo the rotation about the x-axis (R x ( φ x )) which gives the rotation matrix R r (θ) = R x ( φ x )R y ( φ y )R z (θ)r y (φ y )R x (φ x ). Page 14

15 Rotation θ radians about an arbitrary axis r = [r x, r y, r z ] Another strategy is to change basis: 1. Find an orthonormal basis (r, s, t) for R 3 2. Change basis: M = [r, s, t] T 3. Rotate around x-axis: R x (θ) 4. Change back to cardinal basis: M T = M 1 which gives the rotation matrix R r (θ) = M T R x (θ)m Page 15

16 Direct expression for arbitrary rotation about unit vector r cos θ+(1 cos θ)r 2 x (1 cos θ)r x r y r x sin θ (1 cos θ)r x r z+r y sin θ R r(θ)= (1 cosθ)r x r y+r z sin θ cos θ+(1 cos θ)ry 2 (1 cos θ)r y r z r x sin θ (1 cos θ)r x r z r y sin θ (1 cos θ)r y r z+r x sin θ cos θ+(1 cos θ)rz 2 OpenGL glrotate*(θ, r x, r y, r z ) multiplies current matrix with R r (θ) glm function rotate(m,θ,v) does the same job on M Inverse of a rotation R(θ) 1 = R(θ) T = R( θ) Convention: rotation is clockwise wrt direction Page 16

17 Rigid body transforms Transforms that preserve lengths, angles and handedness M Consists of translations and rotations only Rigid body transforms can be written on the form [ ] R t M = 0 T 1 Simple inverse M 1 = [ R T R T ] t 0 T 1 Two rigid transforms = rigid transform Page 17

18 Scale Scale the coordinates by s = (s x, s y, s z ) Scale transformation matrices s x /s x S(s) = 0 s y s z 0, S(s) 1 = 0 1/s y /s z ( ) i.e. S 1 (s x, s y, s z ) = S( 1 s x, 1 s y, 1 s z ) OpenGL glscale(s x, s y, s z ) multiplies the current matrix with S(s x, s y, s z ) glm::scale(m,s) does the same job on the matrix M Page 18

19 Uniform scale If s x = s y = s z, we scale uniformly. On the right, s = (2, 2, 2) Non-uniform scale Otherwise, we scale non-uniformly. On the right, s = (1, 2, 1) Page 19

20 Scale along an arbitrary direction We can scale along any axis by combining scale and rotation: R z (45 ) S(1, 2, 1) R z ( 45 ) p = R z ( 45 )S(1, 2, 1)R z (45 )p Page 20

21 Shear We shear a shape by adding some of one component onto another. Shear of x by y We add sy to the x coordinate, x = x + sy, y = y, z = z. H xy In matrix form, this is 1 s 0 0 H xy (s) = , s 0 0 H 1 xy (s) = OpenGL Use e.g. glmultmatrix*() to set up shear Page 21

22 Euler transforms Page 22

23 Euler angles In R 2, we combine two rotations by adding the angles Euler transform: combine three rotations in R 3 head/yaw (around y axis) pitch (around x axis) roll (around z axis) Yields a composite rotation, E(h, p, r) = R z (r)r x (p)r y (h) Rotations are generally non-commutative! Other orderings of Euler angle rotations exists as well... Page 23

24 Gimbal lock happens when one axis is rotated to the direction of another = the rotation gets locked... (loose a degree of freedom) R z (r)r x (π/2)r y (h) = R x (π/2)r y (r + h) = R z (r + h)r x (π/2) Euler angles can go into Gimbal lock (so can aeroplane instruments!) Page 24

25 Quaternions Page 25

26 Quaternions The 4D generalization of complex numbers (2D). Complex numbers can describe rotations in R 2. Similarly, quaternions can describe rotations in R 3... and avoids the problems of Euler angles... Page 26

27 Quick re-cap on complex numbers A complex number=point in the complex plane: p = ρ(cos(θ), sin(θ)) = ρe iθ = ρ(cos θ + i sin θ) Im p φ θ+φ p The imaginary unit i has the property i 2 = 1 To rotate φ radians, simply multiply p with r = e iφ θ Re p = pr = ρe iθ e iφ = ρe i(θ+φ) = any rotation achieved with complex number r = 1 Page 27

28 Quaternion definition and properties A quaternion can be regarded a 4-dimensional complex number ˆp = q x i + q y j + q z k + q w (1) where the i, j, and k have the following properties: i 2 = j 2 = k 2 = 1, and ij = k = ji, jk = i = kj, ki = j = ik (2) We often use vector notation for quaternions, ˆp = [ ] T [ q x, q y, q z, q w = q T ] T, q w where q and q w represents the imaginary and real parts respectively Page 28

29 Quaternion properties Quaternions can be added and subtracted The product of two quaternions can be found by writing them on the form (1) and simplify using (2). ˆpˆq = [ The norm of ˆp, p w q + q w p + p q }{{} imaginary part n(ˆp) = ˆp =, p w q w p q }{{} real part q 2 w + q q. ] Quaternion multiplicative identity [0, 1] The conjugate of a quaternion: [q, q w ] = [ q, q w ] The inverse of a quaternion is (from ˆpˆp 1 = [0, 1]) ˆp 1 = 1 ˆp 2 ˆp Page 29

30 Unit quaternions and rotations A unit quaternion is a quaternion for which ˆq = 1 ˆq 1 = ˆq for unit quaternions Unit quaternions can represent arbitrary R 3 rotations: Rotation of 2φ around the unit vector v can be represented by ˆr = [ sin(φ)v, cos(φ) ] T with a homogeneous point p transformed by R v (2φ)p = ˆrpˆr The product of two unit quaternions is a unit quaternion To concatinate rotations ˆqˆrpˆr ˆq = ĉpĉ, ĉ = ˆqˆr The simplicity of the latter is a big advantage! Page 30

31 Rotation matrix from a unit quaternion Given the unit quaternion ˆq = (q x, q y, q z, q w ), the corresponding rotation matrix is given by 1 2(q y q y +q z q z ) 2(q x q y q z q w ) 2(q x q z +q y q w ) R = 2(q x q y +q z q w ) 1 2(q x q x +q z q z ) 2(q y q z q x q w ) 2(q x q z q y q w ) 2(q y q z +q x q w ) 1 2(q x q x +q y q y ) Finding a quaternion from a rotation matrix is slightly more complicated A rotation matrix is orthogonal: R 1 = R T Recall: homogeneous rotation matrix: [ ] R 0 M = 0 T. 1 Page 31

32 Concatenating rotations Two (or more) consecutive rotations can be combined (concatenated) into one new rotation. We can find this new rotation in several ways: 1. Multiply the rotation matrices for each rotation. Because of round-off errors, the matrices become more and more non-orthogonal. Can be fixed by Gram-Schmidt orthogonalization. 2. Multiply the quaternions for each rotation. Round-off errors make the quaternions become less and less unitary. Can be fixed by normalization, i.e. ˆq = 1 ˆq ˆq Normalizing a quaternion is a lot cheaper than orthogonalizing a matrix! Page 32

33 Other uses of quaternions Interpolation between directions / rotations, spherical linear interpolation Rotation that takes one vector s to another vector t 1 2(1 + e) ˆq = [ (s t), ] 2(1 + e) 2 where e = s t Page 33

34 Transforms in glm glm provides quaternions (and Euler angles) All operations like length, normalize, cross, dot, etc, lots of utilities glm::gtc::quaternions glm::gtx::quaternions. Example: glm::quat Q = glm::angleaxis(90.0f, glm::vec3(0, 0, 1)); glm::vec3 euler = glm::gtx::quaternion::eularangles(q); Page 34

35 Projective transforms Page 35

36 Map view volume into canonical view volume Page 36

37 Projection transform Map view volume into canonical view volume [ 1, 1] 3 View volumes are defined by the modelview and projection transforms Objects outside the view volume will be invisible Mapped (x, y, z) represent screen (x, y) and depth (z) coordinates respectively For this we need projections... Page 37

38 Projection types Two types of projections are used in graphics: Orthographic (Orthographic camera model) Perspective (Pinhole camera model) Page 38

39 Orthographic projections Orthographic projections works like an inifinite tele-lens To project a point onto the z = 0 plane: (x, y, z ) = (x, y, 0), Can be performed with 4 4 matrix x x y z = y BUT: Maps all points to the z = 0 plane, also negative z Need to instead map points in a view volume to [ 1, 1] 3 Page 39

40 Specify a view volume by x min, x max, y min, y max, z min, z max Ortographic (affine) transformation by two steps: 1. Translate the center of the view volume to the origin, 2. Scale to cube [ 1, 1] 3, T ( x min+x max 2, y min+y max 2, z min+z max 2 S ( 2 x max x min, 2 y max y min, 2 z max z min ), ), The mapping is thus 2 x max x min 0 0 x min+x max x max x min 2 0 P = ST = y max y min 0 y min+y max y max y min z max z min z min+z max z max z min Page 40

41 Orthogonal projections in OpenGL OpenGL: glortho(xmin,xmax,ymin,ymax,near,far) sets up the GL_PROJECTION matrix P Also, the utility library provides gluortho2d(xmin,xmax,ymin,ymax) which is equivalent with glortho(xmin,xmax,ymin,ymax,-1,1) call glmatrixmode(gl_projection) before projections!!!! Page 41

42 Perspective projection Assume that eye-point at the origin, looking along the negative z-axis, y is up and the projection plane is parallel to the xy-plane positioned at z = d for some d > 0. The projection of p = (x, y, z) is q = (x, y, z ) = ( dx z, dy z, d) Perspective projection is clearly non-affine Page 42

43 Homogeneous matrices can represent perspective projections: A homogeneous point can be arbitrary scaled for any w 0, (x, y, z, 1) is the same point as (wx, wy, wz, w) We can recover the representation (x, y, z, 1) by perspective division, i.e. dividing the coordinates by w We can therefore write the projection as x x y z = y z 0 } 0 1/d {{ 0 1 }}{{} z/d P p division dx/z dy/z dz/z } 1 {{ } p Provides the correct perspective projection but sends all points into the plane z = d. Need to map the view volume injectively to [ 1, 1] 3 Page 43

44 Perspective projection matrix The scalars (l, r, b, t, n, f ) specify a view frustum, with front face corners at (l, b, n) and (r, t, n) and back-face at depth z = f The perspective projection matrix reads P p = 2n r+l r l 0 r l 0 2n t+b 0 t b t b f +n f n 2fn f n With perspective division, maps near/far planes to z = 1 and z = 1 Page 44

45 Perspective projections in OpenGL OpenGL: glfrustum(l,r,b,t,n,f) determines the view frustum and perspective projection matrix P Notice that n and f are positive, however, the near and far planes are at z = n and z = f. An alternative is a function in the utility library, gluperspective(fovy,aspect,near,far) fovy is the field of view in the y direction, aspect is the aspect ratio (width/height) of the window. call glmatrixmode(gl_projection) before projections!!!! glm has similar functions: glm::frustum, glm::perspective etc Page 45

46 Viewport transformation After transformations given by modelview matrix projection matrix perspective division visible geometry has normalized device coordinates in [ 1, 1] 3 Use glviewport(x,y,w,h) to set pixel rectangle to draw in. Use the same aspect-ratio as the frustum to avoid distortion, i.e. w h = r l t b The viewport transformation yields window coordinates and depth (user determined interval e.g. [0, 1]) Page 46

47 Vertex-processing by glm mat4 Projection = glm::perspective(45.0f, 1.33f, 0.1f, 100.f); glm::mat4 ViewTranslate = glm::translate(glm::mat4(1.0f), trans); glm::mat4 ViewRotateX = glm::rotate(viewtranslate, rotate.x, glm::vec3(1.0f, 0.0f, 0.0f)); glm::mat4 View = glm::rotate(viewrotatex, rotate.y, glm::vec3(0.0f, 1.0f, 0.0f)); glm::mat4 Model = glm::scale(glm::mat4(1.0f),glm::vec3(0.5f)); glm::mat4 MVP = Projection * View * Model; glloadmatrixf(value_ptr(mvp)); Page 47

48 The last slide Today: more transformations, Euler angles, quaternions, projections Page 48

49 The last slide Today: more transformations, Euler angles, quaternions, projections Transformations are easy to get wrong... Many ways to get a black screen Remember glmatrixmode Check obvious bugs, e.g. drawing black on black Visualize the model and camera Understand modelview transforms now (or tomorrow)! Next time: Visual appearance Page 49

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

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

More information

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

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

GEOMETRIC TRANSFORMATIONS AND VIEWING

GEOMETRIC TRANSFORMATIONS AND VIEWING GEOMETRIC TRANSFORMATIONS AND VIEWING 2D and 3D 1/44 2D TRANSFORMATIONS HOMOGENIZED Transformation Scaling Rotation Translation Matrix s x s y cosθ sinθ sinθ cosθ 1 dx 1 dy These 3 transformations are

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

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

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

Transformations. Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico

Transformations. Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico Transformations Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico Angel: Interactive Computer Graphics 4E Addison-Wesley 25 1 Objectives

More information

2D and 3D Transformations AUI Course Denbigh Starkey

2D and 3D Transformations AUI Course Denbigh Starkey 2D and 3D Transformations AUI Course Denbigh Starkey. Introduction 2 2. 2D transformations using Cartesian coordinates 3 2. Translation 3 2.2 Rotation 4 2.3 Scaling 6 3. Introduction to homogeneous coordinates

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

CS 130 Final. Fall 2015

CS 130 Final. Fall 2015 CS 130 Final Fall 2015 Name Student ID Signature You may not ask any questions during the test. If you believe that there is something wrong with a question, write down what you think the question is trying

More information

OpenGL Transformations

OpenGL Transformations OpenGL Transformations R. J. Renka Department of Computer Science & Engineering University of North Texas 02/18/2014 Introduction The most essential aspect of OpenGL is the vertex pipeline described in

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

Computer Graphics Geometric Transformations

Computer Graphics Geometric Transformations Computer Graphics 2016 6. Geometric Transformations Hongxin Zhang State Key Lab of CAD&CG, Zhejiang University 2016-10-31 Contents Transformations Homogeneous Co-ordinates Matrix Representations of Transformations

More information

Lecture 4. Viewing, Projection and Viewport Transformations

Lecture 4. Viewing, Projection and Viewport Transformations Notes on Assignment Notes on Assignment Hw2 is dependent on hw1 so hw1 and hw2 will be graded together i.e. You have time to finish both by next monday 11:59p Email list issues - please cc: elif@cs.nyu.edu

More information

CSE528 Computer Graphics: Theory, Algorithms, and Applications

CSE528 Computer Graphics: Theory, Algorithms, and Applications CSE528 Computer Graphics: Theory, Algorithms, and Applications Hong Qin Stony Brook University (SUNY at Stony Brook) Stony Brook, New York 11794-2424 Tel: (631)632-845; Fax: (631)632-8334 qin@cs.stonybrook.edu

More information

CSE328 Fundamentals of Computer Graphics

CSE328 Fundamentals of Computer Graphics CSE328 Fundamentals of Computer Graphics Hong Qin State University of New York at Stony Brook (Stony Brook University) Stony Brook, New York 794--44 Tel: (63)632-845; Fax: (63)632-8334 qin@cs.sunysb.edu

More information

3D Mathematics. Co-ordinate systems, 3D primitives and affine transformations

3D Mathematics. Co-ordinate systems, 3D primitives and affine transformations 3D Mathematics Co-ordinate systems, 3D primitives and affine transformations Coordinate Systems 2 3 Primitive Types and Topologies Primitives Primitive Types and Topologies 4 A primitive is the most basic

More information

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

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

More information

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

Computer Viewing. CS 537 Interactive Computer Graphics Prof. David E. Breen Department of Computer Science Computer Viewing CS 537 Interactive Computer Graphics Prof. David E. Breen Department of Computer Science 1 Objectives Introduce the mathematics of projection Introduce OpenGL viewing functions Look at

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

Overview. By end of the week:

Overview. By end of the week: Overview By end of the week: - Know the basics of git - Make sure we can all compile and run a C++/ OpenGL program - Understand the OpenGL rendering pipeline - Understand how matrices are used for geometric

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

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

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

Transforms. COMP 575/770 Spring 2013

Transforms. COMP 575/770 Spring 2013 Transforms COMP 575/770 Spring 2013 Transforming Geometry Given any set of points S Could be a 2D shape, a 3D object A transform is a function T that modifies all points in S: T S S T v v S Different transforms

More information

Last week. Machiraju/Zhang/Möller/Fuhrmann

Last week. Machiraju/Zhang/Möller/Fuhrmann Last week Machiraju/Zhang/Möller/Fuhrmann 1 Geometry basics Scalar, point, and vector Vector space and affine space Basic point and vector operations Sided-ness test Lines, planes, and triangles Linear

More information

Lecture 5: Transforms II. Computer Graphics and Imaging UC Berkeley CS184/284A

Lecture 5: Transforms II. Computer Graphics and Imaging UC Berkeley CS184/284A Lecture 5: Transforms II Computer Graphics and Imaging UC Berkeley 3D Transforms 3D Transformations Use homogeneous coordinates again: 3D point = (x, y, z, 1) T 3D vector = (x, y, z, 0) T Use 4 4 matrices

More information

CGT520 Transformations

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

More information

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

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

More information

Transformation Algebra

Transformation Algebra Transformation Algebra R. J. Renka Department of Computer Science & Engineering University of North Texas 0/07/205 Linear Transformations A point with Cartesian coordinates (x, y, z) is taken to be a column

More information

Notes on Assignment. Notes on Assignment. Notes on Assignment. Notes on Assignment

Notes on Assignment. Notes on Assignment. Notes on Assignment. Notes on Assignment Notes on Assignment Notes on Assignment Objects on screen - made of primitives Primitives are points, lines, polygons - watch vertex ordering The main object you need is a box When the MODELVIEW matrix

More information

Computer Graphics. Chapter 5 Geometric Transformations. Somsak Walairacht, Computer Engineering, KMITL

Computer Graphics. Chapter 5 Geometric Transformations. Somsak Walairacht, Computer Engineering, KMITL Chapter 5 Geometric Transformations Somsak Walairacht, Computer Engineering, KMITL 1 Outline Basic Two-Dimensional Geometric Transformations Matrix Representations and Homogeneous Coordinates Inverse Transformations

More information

COMP30019 Graphics and Interaction Three-dimensional transformation geometry and perspective

COMP30019 Graphics and Interaction Three-dimensional transformation geometry and perspective COMP30019 Graphics and Interaction Three-dimensional transformation geometry and perspective Department of Computing and Information Systems The Lecture outline Introduction Rotation about artibrary axis

More information

Transformations. CSCI 420 Computer Graphics Lecture 4

Transformations. CSCI 420 Computer Graphics Lecture 4 CSCI 420 Computer Graphics Lecture 4 Transformations Jernej Barbic University of Southern California Vector Spaces Euclidean Spaces Frames Homogeneous Coordinates Transformation Matrices [Angel, Ch. 4]

More information

IMAGE-BASED RENDERING AND ANIMATION

IMAGE-BASED RENDERING AND ANIMATION DH2323 DGI17 INTRODUCTION TO COMPUTER GRAPHICS AND INTERACTION IMAGE-BASED RENDERING AND ANIMATION Christopher Peters CST, KTH Royal Institute of Technology, Sweden chpeters@kth.se http://kth.academia.edu/christopheredwardpeters

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

2D Image Transforms Computer Vision (Kris Kitani) Carnegie Mellon University

2D Image Transforms Computer Vision (Kris Kitani) Carnegie Mellon University 2D Image Transforms 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University Extract features from an image what do we do next? Feature matching (object recognition, 3D reconstruction, augmented

More information

Today. Rendering pipeline. Rendering pipeline. Object vs. Image order. Rendering engine Rendering engine (jtrt) Computergrafik. Rendering pipeline

Today. Rendering pipeline. Rendering pipeline. Object vs. Image order. Rendering engine Rendering engine (jtrt) Computergrafik. Rendering pipeline Computergrafik Today Rendering pipeline s View volumes, clipping Viewport Matthias Zwicker Universität Bern Herbst 2008 Rendering pipeline Rendering pipeline Hardware & software that draws 3D scenes on

More information

CMSC427 Transformations II: Viewing. Credit: some slides from Dr. Zwicker

CMSC427 Transformations II: Viewing. Credit: some slides from Dr. Zwicker CMSC427 Transformations II: Viewing Credit: some slides from Dr. Zwicker What next? GIVEN THE TOOLS OF The standard rigid and affine transformations Their representation with matrices and homogeneous coordinates

More information

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

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

More information

Drawing in 3D (viewing, projection, and the rest of the pipeline)

Drawing in 3D (viewing, projection, and the rest of the pipeline) Drawing in 3D (viewing, projection, and the rest of the pipeline) CS559 Spring 2017 Lecture 6 February 2, 2017 The first 4 Key Ideas 1. Work in convenient coordinate systems. Use transformations to get

More information

Virtual Cameras and The Transformation Pipeline

Virtual Cameras and The Transformation Pipeline Virtual Cameras and The Transformation Pipeline Anton Gerdelan gerdela@scss.tcd.ie with content from Rachel McDonnell 13 Oct 2014 Virtual Camera We want to navigate through our scene in 3d Solution = create

More information

Affine Transformations in 3D

Affine Transformations in 3D Affine Transformations in 3D 1 Affine Transformations in 3D 1 Affine Transformations in 3D General form 2 Translation Elementary 3D Affine Transformations 3 Scaling Around the Origin 4 Along x-axis Shear

More information

The Graphics Pipeline and OpenGL I: Transformations!

The Graphics Pipeline and OpenGL I: Transformations! ! The Graphics Pipeline and OpenGL I: Transformations! Gordon Wetzstein! Stanford University! EE 267 Virtual Reality! Lecture 2! stanford.edu/class/ee267/!! Albrecht Dürer, Underweysung der Messung mit

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

Computer Graphics 7: Viewing in 3-D

Computer Graphics 7: Viewing in 3-D Computer Graphics 7: Viewing in 3-D In today s lecture we are going to have a look at: Transformations in 3-D How do transformations in 3-D work? Contents 3-D homogeneous coordinates and matrix based transformations

More information

Lecture 4: Transforms. Computer Graphics CMU /15-662, Fall 2016

Lecture 4: Transforms. Computer Graphics CMU /15-662, Fall 2016 Lecture 4: Transforms Computer Graphics CMU 15-462/15-662, Fall 2016 Brief recap from last class How to draw a triangle - Why focus on triangles, and not quads, pentagons, etc? - What was specific to triangles

More information

Transformations. CSCI 420 Computer Graphics Lecture 5

Transformations. CSCI 420 Computer Graphics Lecture 5 CSCI 420 Computer Graphics Lecture 5 Transformations Jernej Barbic University of Southern California Vector Spaces Euclidean Spaces Frames Homogeneous Coordinates Transformation Matrices [Angel, Ch. 3]

More information

CS 4204 Computer Graphics

CS 4204 Computer Graphics CS 424 Computer Graphics 2D Transformations Yong Cao Virginia Tech References: Introduction to Computer Graphics course notes by Doug Bowman Interactive Computer Graphics, Fourth Edition, Ed Angle Transformations

More information

Transformations. OpenGL Transformations. 4x4 Model-view Matrix (this lecture) OpenGL Transformation Matrices. 4x4 Projection Matrix (next lecture)

Transformations. OpenGL Transformations. 4x4 Model-view Matrix (this lecture) OpenGL Transformation Matrices. 4x4 Projection Matrix (next lecture) CSCI 420 Computer Graphics Lecture 5 OpenGL Transformations Transformations Vector Spaces Euclidean Spaces Frames Homogeneous Coordinates Transformation Matrices Jernej Barbic [Angel, Ch. 3] University

More information

Image warping , , Computational Photography Fall 2017, Lecture 10

Image warping , , Computational Photography Fall 2017, Lecture 10 Image warping http://graphics.cs.cmu.edu/courses/15-463 15-463, 15-663, 15-862 Computational Photography Fall 2017, Lecture 10 Course announcements Second make-up lecture on Friday, October 6 th, noon-1:30

More information

Orientation & Quaternions

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

More information

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

INTRODUCTION TO COMPUTER GRAPHICS. It looks like a matrix Sort of. Viewing III. Projection in Practice. Bin Sheng 10/11/ / 52

INTRODUCTION TO COMPUTER GRAPHICS. It looks like a matrix Sort of. Viewing III. Projection in Practice. Bin Sheng 10/11/ / 52 cs337 It looks like a matrix Sort of Viewing III Projection in Practice / 52 cs337 Arbitrary 3D views Now that we have familiarity with terms we can say that these view volumes/frusta can be specified

More information

Viewing and Projection

Viewing and Projection 15-462 Computer Graphics I Lecture 5 Viewing and Projection Shear Transformation Camera Positioning Simple Parallel Projections Simple Perspective Projections [Angel, Ch. 5.2-5.4] January 30, 2003 [Red

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

Viewing and Projection

Viewing and Projection CSCI 480 Computer Graphics Lecture 5 Viewing and Projection Shear Transformation Camera Positioning Simple Parallel Projections Simple Perspective Projections [Geri s Game, Pixar, 1997] January 26, 2011

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

Geometric Transformations

Geometric Transformations Geometric Transformations CS 4620 Lecture 9 2017 Steve Marschner 1 A little quick math background Notation for sets, functions, mappings Linear and affine transformations Matrices Matrix-vector multiplication

More information

Rotations in 3D Graphics and the Gimbal Lock

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

More information

S U N G - E U I YO O N, K A I S T R E N D E R I N G F R E E LY A VA I L A B L E O N T H E I N T E R N E T

S U N G - E U I YO O N, K A I S T R E N D E R I N G F R E E LY A VA I L A B L E O N T H E I N T E R N E T S U N G - E U I YO O N, K A I S T R E N D E R I N G F R E E LY A VA I L A B L E O N T H E I N T E R N E T Copyright 2018 Sung-eui Yoon, KAIST freely available on the internet http://sglab.kaist.ac.kr/~sungeui/render

More information

Coordinate transformations. 5554: Packet 8 1

Coordinate transformations. 5554: Packet 8 1 Coordinate transformations 5554: Packet 8 1 Overview Rigid transformations are the simplest Translation, rotation Preserve sizes and angles Affine transformation is the most general linear case Homogeneous

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

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

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

The Graphics Pipeline and OpenGL I: Transformations!

The Graphics Pipeline and OpenGL I: Transformations! ! The Graphics Pipeline and OpenGL I: Transformations! Gordon Wetzstein! Stanford University! EE 267 Virtual Reality! Lecture 2! stanford.edu/class/ee267/!! Logistics Update! all homework submissions:

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

Interactive Computer Graphics. Hearn & Baker, chapter D transforms Hearn & Baker, chapter 5. Aliasing and Anti-Aliasing

Interactive Computer Graphics. Hearn & Baker, chapter D transforms Hearn & Baker, chapter 5. Aliasing and Anti-Aliasing Interactive Computer Graphics Aliasing and Anti-Aliasing Hearn & Baker, chapter 4-7 D transforms Hearn & Baker, chapter 5 Aliasing and Anti-Aliasing Problem: jaggies Also known as aliasing. It results

More information

Rotation with Quaternions

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

More information

2D and 3D Coordinate Systems and Transformations

2D and 3D Coordinate Systems and Transformations Graphics & Visualization Chapter 3 2D and 3D Coordinate Systems and Transformations Graphics & Visualization: Principles & Algorithms Introduction In computer graphics is often necessary to change: the

More information

Computer Viewing. Prof. George Wolberg Dept. of Computer Science City College of New York

Computer Viewing. Prof. George Wolberg Dept. of Computer Science City College of New York Computer Viewing Prof. George Wolberg Dept. of Computer Science City College of New York Objectives Introduce the mathematics of projection Introduce OpenGL viewing functions Look at alternate viewing

More information

Overview. By end of the week:

Overview. By end of the week: Overview By end of the week: - Know the basics of git - Make sure we can all compile and run a C++/ OpenGL program - Understand the OpenGL rendering pipeline - Understand how matrices are used for geometric

More information

Classical and Computer Viewing. Adapted From: Ed Angel Professor of Emeritus of Computer Science University of New Mexico

Classical and Computer Viewing. Adapted From: Ed Angel Professor of Emeritus of Computer Science University of New Mexico Classical and Computer Viewing Adapted From: Ed Angel Professor of Emeritus of Computer Science University of New Mexico Planar Geometric Projections Standard projections project onto a plane Projectors

More information

Jorg s Graphics Lecture Notes Coordinate Spaces 1

Jorg s Graphics Lecture Notes Coordinate Spaces 1 Jorg s Graphics Lecture Notes Coordinate Spaces Coordinate Spaces Computer Graphics: Objects are rendered in the Euclidean Plane. However, the computational space is better viewed as one of Affine Space

More information

SUMMARY. CS380: Introduction to Computer Graphics Projection Chapter 10. Min H. Kim KAIST School of Computing 18/04/12. Smooth Interpolation

SUMMARY. CS380: Introduction to Computer Graphics Projection Chapter 10. Min H. Kim KAIST School of Computing 18/04/12. Smooth Interpolation CS38: Introduction to Computer Graphics Projection Chapter Min H. Kim KAIST School of Computing Smooth Interpolation SUMMARY 2 Cubic Bezier Spline To evaluate the function c(t) at any value of t, we perform

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

Fachhochschule Regensburg, Germany, February 15, 2017

Fachhochschule Regensburg, Germany, February 15, 2017 s Operations Fachhochschule Regensburg, Germany, February 15, 2017 s Motivating Example s Operations To take a photograph of a scene: Set up your tripod and point camera at the scene (Viewing ) Position

More information

3D Transformation. In 3D, we have x, y, and z. We will continue use column vectors:. Homogenous systems:. x y z. x y z. glvertex3f(x, y,z);

3D Transformation. In 3D, we have x, y, and z. We will continue use column vectors:. Homogenous systems:. x y z. x y z. glvertex3f(x, y,z); 3D Transformation In 3D, we have x, y, and z. We will continue use column vectors:. Homogenous systems:. 3D Transformation glvertex3f(x, y,z); x y z x y z A Right Handle Coordinate System x y z; y z x;

More information

Computer Graphics: Viewing in 3-D. Course Website:

Computer Graphics: Viewing in 3-D. Course Website: Computer Graphics: Viewing in 3-D Course Website: http://www.comp.dit.ie/bmacnamee 2 Contents Transformations in 3-D How do transformations in 3-D work? 3-D homogeneous coordinates and matrix based transformations

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

Math background. 2D Geometric Transformations. Implicit representations. Explicit representations. Read: CS 4620 Lecture 6

Math background. 2D Geometric Transformations. Implicit representations. Explicit representations. Read: CS 4620 Lecture 6 Math background 2D Geometric Transformations CS 4620 Lecture 6 Read: Chapter 2: Miscellaneous Math Chapter 5: Linear Algebra Notation for sets, functions, mappings Linear transformations Matrices Matrix-vector

More information

Introduction to Computer Graphics 4. Viewing in 3D

Introduction to Computer Graphics 4. Viewing in 3D Introduction to Computer Graphics 4. Viewing in 3D National Chiao Tung Univ, Taiwan By: I-Chen Lin, Assistant Professor Textbook: E.Angel, Interactive Computer Graphics, 5 th Ed., Addison Wesley Ref: Hearn

More information

Overview. Viewing and perspectives. Planar Geometric Projections. Classical Viewing. Classical views Computer viewing Perspective normalization

Overview. Viewing and perspectives. Planar Geometric Projections. Classical Viewing. Classical views Computer viewing Perspective normalization Overview Viewing and perspectives Classical views Computer viewing Perspective normalization Classical Viewing Viewing requires three basic elements One or more objects A viewer with a projection surface

More information

EECE 478. Learning Objectives. Learning Objectives. Linear Algebra and 3D Geometry. Linear algebra in 3D. Coordinate systems

EECE 478. Learning Objectives. Learning Objectives. Linear Algebra and 3D Geometry. Linear algebra in 3D. Coordinate systems EECE 478 Linear Algebra and 3D Geometry Learning Objectives Linear algebra in 3D Define scalars, points, vectors, lines, planes Manipulate to test geometric properties Coordinate systems Use homogeneous

More information

Fall CSCI 420: Computer Graphics. 2.2 Transformations. Hao Li.

Fall CSCI 420: Computer Graphics. 2.2 Transformations. Hao Li. Fall 2017 CSCI 420: Computer Graphics 2.2 Transformations Hao Li http://cs420.hao-li.com 1 OpenGL Transformations Matrices Model-view matrix (4x4 matrix) Projection matrix (4x4 matrix) vertices in 3D Model-view

More information

CS452/552; EE465/505. Transformations

CS452/552; EE465/505. Transformations CS452/552; EE465/55 Transformations 1-29-15 Outline! Transformations Read: Angel, Chapter 4 (study cube.html/cube.js example) Helpful links: Linear Algebra: Khan Academy Lab1 is posted on github, due:

More information

CS 4204 Computer Graphics

CS 4204 Computer Graphics CS 4204 Computer Graphics 3D Viewing and Projection Yong Cao Virginia Tech Objective We will develop methods to camera through scenes. We will develop mathematical tools to handle perspective projection.

More information

Viewing and Projection

Viewing and Projection CSCI 480 Computer Graphics Lecture 5 Viewing and Projection January 25, 2012 Jernej Barbic University of Southern California Shear Transformation Camera Positioning Simple Parallel Projections Simple Perspective

More information

Agenda. Rotations. Camera models. Camera calibration. Homographies

Agenda. Rotations. Camera models. Camera calibration. Homographies Agenda Rotations Camera models Camera calibration Homographies D Rotations R Y = Z r r r r r r r r r Y Z Think of as change of basis where ri = r(i,:) are orthonormal basis vectors r rotated coordinate

More information

Today. Parity. General Polygons? Non-Zero Winding Rule. Winding Numbers. CS559 Lecture 11 Polygons, Transformations

Today. Parity. General Polygons? Non-Zero Winding Rule. Winding Numbers. CS559 Lecture 11 Polygons, Transformations CS559 Lecture Polygons, Transformations These are course notes (not used as slides) Written by Mike Gleicher, Oct. 005 With some slides adapted from the notes of Stephen Chenney Final version (after class)

More information

Computer Graphics. P04 Transformations. Aleksandra Pizurica Ghent University

Computer Graphics. P04 Transformations. Aleksandra Pizurica Ghent University Computer Graphics P4 Transformations Aleksandra Pizurica Ghent Universit Telecommunications and Information Processing Image Processing and Interpretation Group Transformations in computer graphics Goal:

More information

GLM. Mike Bailey. What is GLM?

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

More information

One or more objects A viewer with a projection surface Projectors that go from the object(s) to the projection surface

One or more objects A viewer with a projection surface Projectors that go from the object(s) to the projection surface Classical Viewing Viewing requires three basic elements One or more objects A viewer with a projection surface Projectors that go from the object(s) to the projection surface Classical views are based

More information

Geometric transformations in 3D and coordinate frames. Computer Graphics CSE 167 Lecture 3

Geometric transformations in 3D and coordinate frames. Computer Graphics CSE 167 Lecture 3 Geometric transformations in 3D and coordinate frames Computer Graphics CSE 167 Lecture 3 CSE 167: Computer Graphics 3D points as vectors Geometric transformations in 3D Coordinate frames CSE 167, Winter

More information

CSC 305 The Graphics Pipeline-1

CSC 305 The Graphics Pipeline-1 C. O. P. d y! "#"" (-1, -1) (1, 1) x z CSC 305 The Graphics Pipeline-1 by Brian Wyvill The University of Victoria Graphics Group Perspective Viewing Transformation l l l Tools for creating and manipulating

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

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

Specifying Complex Scenes

Specifying Complex Scenes Transformations Specifying Complex Scenes (x,y,z) (r x,r y,r z ) 2 (,,) Specifying Complex Scenes Absolute position is not very natural Need a way to describe relative relationship: The lego is on top

More information

UNIT 2 2D TRANSFORMATIONS

UNIT 2 2D TRANSFORMATIONS UNIT 2 2D TRANSFORMATIONS Introduction With the procedures for displaying output primitives and their attributes, we can create variety of pictures and graphs. In many applications, there is also a need

More information