Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing...

38
Computer Graphics Recitation 2
  • date post

    19-Dec-2015
  • Category

    Documents

  • view

    215
  • download

    0

Transcript of Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing...

Page 1: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

Computer Graphics

Recitation 2

Page 2: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

2

The plan today

Learn about rotations in 2D and 3D. Representing rotations by quaternions.

Page 3: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

3

Rotation in 2D

Rotation about the origin by angle .

O

Positive angle meanscounter-clockwise direction.

Page 4: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

4

Rotation in 2D

Positive angle meanscounter-clockwise direction.

O

Rotation about the origin by angle .

Page 5: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

5

Rotation in 2D – matrix representation

Multiply (x, y) by the rotation matrix:

O

P (x, y)

P’ = R (P)

cossin

sincos

cossin

sincos

)(

yxy

yxx

y

x

y

x

PRP

Page 6: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

6

Interpolating rotations in 2D

O

We want to generate N intermediate positions:

Page 7: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

7

Interpolating rotations in 2D

O

Divide the arc into N pieces of equal length

Page 8: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

8

Interpolating rotations in 2D

Apply rotations for i = 1, 2, …, N

O

NiR

Page 9: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

9

Interpolating rotations in 2D

Apply rotations for i = 1, 2, …, N

O

NiR

Page 10: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

10

Interpolating rotations in 2D

Apply rotations for i = 1, 2, …, N

O

NiR

Page 11: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

11

Interpolating rotations in 2D

Apply rotations for i = 1, 2, …, N

O

NiR

Page 12: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

12

Interpolating rotations in 2D

Apply rotations for i = 1, 2, …, N

O

NiR

Page 13: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

13

Interpolating rotations in 2D

Apply rotations for i = 1, 2, …, N

O

NiR

Page 14: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

14

Interpolating rotations in 2D

Apply rotations for i = 1, 2, …, N

O

NiR

Page 15: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

15

Interpolating rotations in 2D

Apply rotations for i = 1, 2, …, N

O

NiR

Page 16: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

16

Rotations mathematically

Rotation is a linear orthogonal transformation that doesn’t change the orientation.

It means: Let v, u be vectors (or points), R the rotation

<Ru, Rv> = <u, v> (length and angle preservation) => ||Ru|| = ||u||

In matrix representation: let R be n n matrix: RRT = I => R-1 = RT

det(R) = +1 The rows of R are orthonormal vectors (unit-length pairwise

orthogonal vectors). They form a “right-hand” basis of Rn.

Page 17: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

17

2D rotations as complex numbers multiplication

Represent points (x, y) as (x + iy) in C. Multiplying by ei is equivalent to rotation by angle :

ei = cos + i sinei (x + iy) = (cos + i sin) (x + iy) =

(x cos y sin) + i (x sin + y cos)

O

Re

Im

P = x + iy

P’ = ei (x + iy)

Page 18: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

18

Rotations in 3D

Page 19: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

19

Rotations in 3D

Euler’s theorem: any orientation can be obtained from a fixed reference orientation by a single unique rotation around an appropriate axis in space.

Page 20: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

20

Rotations in 3D

We express the rotation in terms of the rotation axis n = (nx , ny , nz), ||n|| = 1, and the rotation angle .

O

n P

Page 21: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

21

Rotations in 3D

We express the rotation in terms of the rotation axis n = (nx , ny , nz), ||n|| = 1, and the rotation angle .

O

n P

P’

Page 22: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

22

The formula for P’

Decompose v into to components:

v = v|| + v

v|| = <v, n> n => v|| || n

v = v – v|| => v nO

n

P

v

v

v||

Page 23: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

23

The formula for P’

The rotation doesn’t affect the axis of rotation, therefore:

v’ = Rn, (v) = Rn, (v|| + v) =

= Rn, (v||) + Rn, (v) =

= v|| + Rn, (v)

We only need to rotate v by angle in the plane perpendicular to n.

O

n

P

v

v

v||

P’

v’

Page 24: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

24

The formula for P’

O

n

P

v

v||

The rotation doesn’t affect the axis of rotation, therefore:

v’ = Rn, (v) = Rn, (v|| + v) =

= Rn, (v||) + Rn, (v) =

= v|| + Rn, (v)

We only need to rotate v by angle in the plane perpendicular to n.

Page 25: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

25

The formula for P’

We rotate v in the plane perpendicular to n. The plane = Span{v, n v}. v, n v n

n v v

Therefore,

Rn, (v) = cos v + sin (n v) = cos v + sin (n v)

n v = n (v|| + v) = n v|| + n v = n v

n

v

v|| R (v)

v

n v

R (v) = (cos, sin)

Page 26: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

26

The formula for P’

v’ = Rn, (v) = v|| + Rn, (v) =

= <n, v>n + cos v + sin (n v) =

= <n, v>n + cos (v <n, v>n) +

+ sin (n v) =

= cos v + (1 cos) <n, v> n +

+ sin (n v).

n

v

v||

P’

Rn, (v) = cos v + (1 cos ) <n, v> n + sin (n v).

Page 27: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

27

Interpolating rotations in 3D

We are animating an object by specifying the key transformations (key frames) .

Suppose two consecutive key-frames are specified by rotations R1 and R2.

Page 28: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

28

How to define an interpolation??

We can try to interpolate the two rotation matrices:

R(t) = (1 t) R1 + t R2

Doesn’t work – the result is not a rotation matrix

Page 29: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

29

Solution

Use extension of ei to 3D => quaternions Interpolate the quaternions…

Page 30: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

30

Multiplication by ei in 3D - ???

Hamilton was searching for an extension of complex numbers that would represent 3D rotations.

He first tried to find a field of numbers of the form x +yi + zj, where x, y, z R and i2 = j2 = 1.

This is not a field (not closed under multiplication).

One day, Hamilton realized that he needs four scalars: s +xi + yj + zk ! He called these objects quaternions.

Page 31: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

31

Quaternions

The ring of quaternions = {s +xi + yj + zk } i2 = j2 = k2 = 1 ij = k, ji = k; jk = i, kj = i; ki = j, ik = j

We will denote q = (s, v) = s +xi + yj + zk where v = (x, y, z)

q1 q2 = (s1, v1) (s2, v2) =

= (s1 s2 <v1, v2 >, s1 v2 + s2 v1 + v1 v2)

Page 32: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

32

Conjugate and inner product

q = (s1, v1) = s xi yj zk

< q1 , q2 > = q1 q2 = s1 s2 + <v1, v2 >

||q||2 = <q, q> = s2 + x2 + y2 + z2

q1 = q / ||q||2

Page 33: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

33

Rotating with quaternions

Represent a vector v as vQ = (0, v). Rotating about axis n, ||n|| = 1, by angle :

Rn, (v) = qvQq

q = (cos( /2), sin( /2) n)

Proof:

sincossin2

cos1sin2

,,)(

)(sin,)cos1(cos,0(

)(sincos2,sin2)sin(cos,0(

)sin,)(cos,0)(sin,(cos

22

22

2222

22

22

2222

cbabcacba

vnnvnv

vnnvnv

nvnqvq

:factsbasicfollowingtheUsing

Page 34: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

34

Some facts about quaternions:

Rotating by q and by q has the same effect. “Rotating” by q such that ||q|| = has a scaling effect. So, we consider the unit quaternions only ||q|| =1 These quaterions live on the unit sphere in four

dimensions… So, we have 3 degrees of freedom for our rotation

quaterion (just like with n, rotation:

1 degree for + 2 degrees for n = 3 degrees of freedom.)

Page 35: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

35

Now, how do we interpolate?

Given two rotations q1 and q2

Simple interpolation q(t) = (1 t) q1+t q2 is not good enough – doesn’t give “constant speed”:

q1q2

Page 36: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

36

Now, how do we interpolate?

Given two rotations q1 and q2

Simple interpolation q(t) = (1 t) q1+t q2 is not good enough – doesn’t give “constant speed”

The unit quaternions live on the unit sphere, so we want to draw a great arc from q1 to q2 on that sphere (it gives the shortest path on the sphere).

q1

q2

Page 37: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

37

Spherical interpolation (slerp)

q1

q2

21

21

,cos

]1,0[,sin

)sin(

sin

))1sin(()(

qq

tqt

qt

tq

thatsuchiswhere

q(t)

Page 38: Computer Graphics Recitation 2. 2 The plan today Learn about rotations in 2D and 3D. Representing rotations by quaternions.

See you next time

Next week the lesson will be presented by Andrei, you will learn about SVD…