csce441: computer graphics 3d transformations

126
Jinxiang Chai CSCE441: Computer Graphics 3D Transformations 1

Upload: kirkan

Post on 09-Jan-2016

49 views

Category:

Documents


4 download

DESCRIPTION

CSCE441: Computer Graphics 3D Transformations. Jinxiang Chai. Outline. 2D Coordinate transformation Composite transformation 3D transformation Required readings: HB 7-8, 9-1 to 9-9. Coordinate Transform: 3D Geometry Pipeline. Rotate and translate the camera. Object space. World space. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: CSCE441: Computer Graphics 3D Transformations

Jinxiang Chai

CSCE441: Computer Graphics3D Transformations

1

Page 2: CSCE441: Computer Graphics 3D Transformations

Outline

2D Coordinate transformation

Composite transformation

3D transformation

Required readings: HB 7-8, 9-1 to 9-9

2

Page 3: CSCE441: Computer Graphics 3D Transformations

Image space

Coordinate Transform: 3D Geometry Pipeline

3

Normalized project

space

View spaceWorld spaceObject space

Aspect ratio &

resolution

Focal length

Rotate and translate the

camera

Page 4: CSCE441: Computer Graphics 3D Transformations

Coordinate Transformation: 3D Modeling/Design

Coordinate transformation from one reference frame to another

4

Page 5: CSCE441: Computer Graphics 3D Transformations

Coordinate Transformation: Animation/Robotics

How to model 2D movement of animated characters or robots?

5

Click here

Page 6: CSCE441: Computer Graphics 3D Transformations

Coordinate Transformation

Coordinate transformation from one reference frame to another

6

Page 7: CSCE441: Computer Graphics 3D Transformations

Coordinate Transformation

Coordinate transformation from one reference frame to another

7

Local reference frame

Page 8: CSCE441: Computer Graphics 3D Transformations

Coordinate Transformation

Coordinate transformation from one reference frame to another

8

Local reference frame

Global reference frame

Page 9: CSCE441: Computer Graphics 3D Transformations

Coordinate Transformation

Coordinate transformation from one reference frame to another

?

9

Local reference frame

Global reference frame

Page 10: CSCE441: Computer Graphics 3D Transformations

Review – Vector Operations

Dot Product

v w

10

Page 11: CSCE441: Computer Graphics 3D Transformations

Review – Vector Operations

Dot Product: measuring similarity between two vectors

v w

)cos(|||| wvwv

11

Page 12: CSCE441: Computer Graphics 3D Transformations

Review – Vector Operations

Dot Product: measuring similarity between two vectors

v w

)cos(|||| wvvw

12

Page 13: CSCE441: Computer Graphics 3D Transformations

Review – Vector Operations

Dot Product: measuring similarity between two vectors

v w

1vvUnit vector:

13

Page 14: CSCE441: Computer Graphics 3D Transformations

Review – Vector Operations

Dot Product: measuring similarity between two vectors

v w

)cos(|||| wvwv

14

Page 15: CSCE441: Computer Graphics 3D Transformations

Review – Vector Operations

Dot Product: measuring similarity between two vectors

v w

0wv

15

Page 16: CSCE441: Computer Graphics 3D Transformations

Review – Vector Operations

Cross Product: measuring the area determined by two vectors

16

v w

Page 17: CSCE441: Computer Graphics 3D Transformations

Review – Vector Operations

Cross Product: measuring the area determined by two vectors

sin 2*v w v w u area u

17

v w

u

Page 18: CSCE441: Computer Graphics 3D Transformations

2D Coordinates

2D Cartesian coordinate system:

P: (x,y)

i

j

o

18

Page 19: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

2D Cartesian coordinate system:

P: (x,y)

i

j

o x

y1 ii

1 jj

0 ji

19

Page 20: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

2D Cartesian coordinate system:

P: (x,y)

i

j

o x

y

1 ii

1 jj

0 ji

20

jyixop

Page 21: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

Transform object description from to

pj

i

i

j

o

o

ji ij

21

Page 22: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

Transform object description from to

pj

i

i

j

o

o

ji ij

22

Given the coordinates (x’,y’) in i’j’

- how to compute the coordinates (x,y) in ij?

Page 23: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

Transform object description from to

pj

i

i

j

o

o

ji ij

23

Given the coordinates (x’,y’) in i’j’

- how to compute the coordinates (x,y) in ij?

0x

0y

Page 24: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

Transform object description from to

pj

i

i

j

o

o

ji ij

),( 00 yx

24

Given the coordinates (x’,y’) in i’j’

- how to compute the coordinates (x,y) in ij?

1100

cossin

sincos

10

0

y

x

y

x

y

x

Page 25: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

Transform object description from to

pj

i

i

j

o

o

jyixop

ji ij

),( 00 yx

25

Page 26: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

Transform object description from to

pj

i

i

j

o

o

jyixop

jyixpo

ji ij

),( 00 yx

26

Page 27: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

Transform object description from to

pj

i

i

j

o

o

jyixop

jyixpo

jyixoo

00

ji ij

),( 00 yx

27

Page 28: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

Transform object description from to

pj

i

i

j

o

o

poooop

ji ij

),( 00 yx

28

Page 29: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

Transform object description from to

pj

i

i

j

o

o

poooop

jyixop

jyixpo

jyixoo

00

ji ij

),( 00 yx

29

Page 30: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

Transform object description from to

pj

i

i

j

o

o

poooop

ji ij

jyixjyixjyix

00

),( 00 yx

30

Page 31: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

Transform object description from to

pj

i

i

j

o

o

poooop

ji ij

jyixjyixjyix

00

jyixjyyixx

)()( 00

),( 00 yx

31

Page 32: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

Transform object description from to

pj

i

i

j

o

o

poooop

ji ij

jyixjyixjyix

00

jyixjyyixx

)()( 00

y

xji

yy

xxji

0

0),( 00 yx

32

Page 33: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

Transform object description from to

pj

i

i

j

o

o

ji ij

y

xji

yy

xxji

0

0

),( 00 yx

33

Page 34: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

Transform object description from to

pj

i

i

j

o

o

ji ij

y

xji

yy

xxji

0

0

y

xjiji

yy

xx 1

0

0

),( 00 yx

34

Page 35: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

Transform object description from to

pj

i

i

j

o

o

ji ij

y

xji

yy

xxji

0

0

y

xjiji

yy

xx 1

0

0

y

xji

j

i

yy

xxT

T

0

0

),( 00 yx

35

10

01

jjij

jiii

j

iji

T

T

Page 36: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

Transform object description from to

pj

i

i

j

o

o

ji ij

y

xji

j

i

yy

xxT

T

0

0

110010

0

y

x

yjjij

xjiii

y

xTT

TT

),( 00 yx

36

Page 37: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

Transform object description from to

pj

i

i

j

o

o

ji ij

y

xji

j

i

yy

xxT

T

0

0

),( 00 yx

37

110010

0

y

x

yjjij

xjiii

y

xTT

TT

Page 38: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

pj

i

i

j

o

o

ji ij

y

xji

j

i

yy

xxT

T

0

0

110010

0

y

x

yjjij

xjiii

y

xTT

TT

),( 00 yx

38

What does this column vector mean?

Page 39: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

Transform object description from to

pj

i

i

j

o

o

ji ij

y

xji

j

i

yy

xxT

T

0

0

110010

0

y

x

yjjij

xjiii

y

xTT

TT

),( 00 yx

39

What does this column vector mean? Vector i’ in the new reference system

ii T

ij T

Page 40: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

Transform object description from to

pj

i

i

j

o

o

ji ij

y

xji

j

i

yy

xxT

T

0

0

110010

0

y

x

yjjij

xjiii

y

xTT

TT

),( 00 yx

40

What does this column vector mean?

Page 41: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

Transform object description from to

pj

i

i

j

o

o

ji ij

y

xji

j

i

yy

xxT

T

0

0

110010

0

y

x

yjjij

xjiii

y

xTT

TT

),( 00 yx

41

What does this column vector mean? Vector j’ in the new reference system

ji T

jj T

Page 42: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

Transform object description from to

pj

i

i

j

o

o

ji ij

y

xji

j

i

yy

xxT

T

0

0

110010

0

y

x

yjjij

xjiii

y

xTT

TT

),( 00 yx

42

What does this column vector mean?

Page 43: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

Transform object description from to

pj

i

i

j

o

o

ji ij

y

xji

j

i

yy

xxT

T

0

0

110010

0

y

x

yjjij

xjiii

y

xTT

TT

),( 00 yx

43

What does this column vector mean? The old origin in the new reference system

Page 44: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

2D translation

pj

i

i

j

o

o

110010

0

y

x

yjjij

xjiii

y

xTT

TT

),( 00 yx

44

Page 45: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

2D translation

pj

i

i

j

o

o

110010

0

y

x

yjjij

xjiii

y

xTT

TT

),( 00 yx

?

? ?

?

45

Page 46: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

2D translation

pj

i

i

j

o

o

110010

0

y

x

yjjij

xjiii

y

xTT

TT

1

0

0

1

),( 00 yx

46

Page 47: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

2D translation&rotation

pj

i

i

j

o

o

110010

0

y

x

yjjij

xjiii

y

xTT

TT

),( 00 yx

?

47

Page 48: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

2D translation&rotation

pj

i

i

j

o

o

1100

cos

10

0

y

x

yjjij

xji

y

xTT

T

),( 00 yx

?

48

Page 49: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

2D translation&rotation

pj

i

i

j

o

o

1100

sin

cos

10

0

y

x

yjj

xji

y

xT

T

),( 00 yx

49

Page 50: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

2D translation&rotation

pj

i

i

j

o

o

1100

sin

cos

10

0

y

x

yjj

xji

y

xT

T

),( 00 yx

?

50

Page 51: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

2D translation&rotation

pj

i

i

j

o

o

1100

sin

sincos

10

0

y

x

yjj

x

y

xT

),( 00 yx

51

Page 52: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

2D translation&rotation

pj

i

i

j

o

o

1100

sin

sincos

10

0

y

x

yjj

x

y

xT

),( 00 yx

?

52

Page 53: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

2D translation&rotation

pj

i

i

j

o

o

1100

cossin

sincos

10

0

y

x

y

x

y

x

),( 00 yx

53

Page 54: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

An alternative way to look at the problem

i

j

o

P=[x,y]j

i

o ),( 00 yx

54

- set up a transformation that superimposes the x’y’ axes onto the xy axis

1

y

x

Page 55: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

An alternative way to look at the problem

i

j

o

P=[x,y]j

i

o ),( 00 yx

55

- set up a transformation that superimposes the x’y’ axes onto the xy axis

1100

10

01

0

0

y

x

y

x

Page 56: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

An alternative way to look at the problem

i

j

o

P=[x,y]

j

io ),( 00 yx

56

- set up a transformation that superimposes the x’y’ axes onto the xy axis

1100

10

01

100

0cossin

0sincos

0

0

y

x

y

x

Page 57: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

An alternative way to look at the problem This transforms the point from (x,y) to (x’,y’)

i

j

o

p

j

io ),( 00 yx

57

1100

10

01

100

0cossin

0sincos

10

0

y

x

y

x

y

x

Page 58: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

An alternative way to look at the problem This transforms the point from (x,y) to (x’,y’) How to transform the point from (x’,y’) to

(x,y)?

i

j

o

p

j

io ),( 00 yx

58

1100

10

01

100

0cossin

0sincos

10

0

y

x

y

x

y

x

Page 59: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

An alternative way to look at the problem This transforms the point from (x,y) to (x’,y’) How to transform the point from (x’,y’) to

(x,y)? Invert the matrix!

i

j

o

p

j

io ),( 00 yx

59

1100

0cossin

0sincos

100

10

01

1

11

0

0

y

x

y

x

y

x

Page 60: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

An alternative way to look at the problem This transforms the point from (x,y) to (x’,y’) How to transform the point from (x’,y’) to

(x,y)? Invert the matrix!

i

j

o

p

j

io ),( 00 yx

60

1100

0cossin

0sincos

100

10

01

1

11

0

0

y

x

y

x

y

x

Page 61: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

An alternative way to look at the problem This transforms the point from (x,y) to (x’,y’) How to transform the point from (x’,y’) to

(x,y)? Invert the matrix!

i

j

o

p

j

io ),( 00 yx

61

1100

0cossin

0sincos

100

10

01

1

11

0

0

y

x

y

x

y

x

100

10

01

0

0

y

x

Page 62: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

An alternative way to look at the problem This transforms the point from (x,y) to (x’,y’) How to transform the point from (x’,y’) to

(x,y)? Invert the matrix!

i

j

o

p

j

io ),( 00 yx

62

1100

0cossin

0sincos

100

10

01

1

11

0

0

y

x

y

x

y

x

100

10

01

0

0

y

x

Page 63: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

An alternative way to look at the problem This transforms the point from (x,y) to (x’,y’) How to transform the point from (x’,y’) to

(x,y)? Invert the matrix!

i

j

o

p

j

io ),( 00 yx

63

1100

0cossin

0sincos

100

10

01

1

11

0

0

y

x

y

x

y

x

100

10

01

0

0

y

x

100

0cossin

0sincos

Page 64: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

Same results!

pj

i

i

j

o

o

1100

cossin

sincos

10

0

y

x

y

x

y

x

),( 00 yx

64

Page 65: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

2D translation&rotation

pj

i

i

j

o o

1???

???

???

1

y

x

y

x

30

65

Page 66: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

2D translation&rotation

pj

i

i

j

o o

1100

030cos30sin

030sin30cos

1

y

x

y

x

30

66

Page 67: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

2D translation&rotation

p

j

i

i

j

oo

1???

???

???

1

y

x

y

x

45

67

Page 68: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

2D translation&rotation

p

j

i

i

j

oo

1100

045cos45sin

045sin45cos

1

y

x

y

x

45

68

Page 69: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

2D translation&rotation

p

j

i

i

j

o

)2,4( o

1???

???

???

1

y

x

y

x

45

69

Page 70: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

2D translation&rotation

p

j

i

i

j

o

)2,4( o

1100

245cos45sin

445sin45cos

1

y

x

y

x

45

70

Page 71: CSCE441: Computer Graphics 3D Transformations

Composite 2D Transformation

How to model 2D movement of characters or robots?

71

Click here

Page 72: CSCE441: Computer Graphics 3D Transformations

Composite 2D Transformation

A 2D lamp character

1

2

3

),,( 0yx

3c

2c

1c

0c

A

72

0

Page 73: CSCE441: Computer Graphics 3D Transformations

Composite 2D Transformation

A 2D lamp character – skeleton size3l

A2l

1l

0l

73

Page 74: CSCE441: Computer Graphics 3D Transformations

Composite 2D Transformation

How can we draw the character given the pose ?

1

2

3

),,( 0yx

3c

2c

1c

0c

A

74

),,,,,( 3210 yx

Page 75: CSCE441: Computer Graphics 3D Transformations

),,( 0yx

3c2c

0c

A1c

Articulated Character

Local reference frames with a default pose (0,0,0,0,0,0)

Page 76: CSCE441: Computer Graphics 3D Transformations

Composite 2D Transformation

What’s the pose?

)1,5(

76

?)?,?,?,,1,5(

300

Page 77: CSCE441: Computer Graphics 3D Transformations

Composite 2D Transformation

What’s the pose?

)1,5(

77

)90,0,90,30,1,5(

300

Page 78: CSCE441: Computer Graphics 3D Transformations

Composite 2D Transformation

A 2D lamp character

1

2

3

3c

2c

1c

A

Given , , how to compute the global position of a point A?

),,,,,( 3210 yx

?

),,( 0yx0c

78

Page 79: CSCE441: Computer Graphics 3D Transformations

Composite 2D Transformation

What’s local coordinate ?

1

2

3

3c

2c

1c

A

?

A

),,( 0yx0c

79

Page 80: CSCE441: Computer Graphics 3D Transformations

Composite 2D Transformation

What’s local coordinate ?

1

2

3

3c

2c

1c

A

?

A

1

03

0

l

p

),,( 0yx0c

03221100 )()0,()()0,()()0,()(),( pRlTRlTRlTRyxTp 80

Page 81: CSCE441: Computer Graphics 3D Transformations

Composite 2D Transformation

What’s the current coordinate A ?

1

2

3

3c

2c

1c

A

?

),,( 0yx0c

1

00

l

p

03221100 )()0,()()0,()()0,()(),( pRlTRlTRlTRyxTp

100

010

01

)0,(2

2

l

lT

81

100

0cossin

0sincos

)( 33

33

3

R

Page 82: CSCE441: Computer Graphics 3D Transformations

Composite 2D Transformation

What’s the current coordinate A ?

1

2

3

3c

2c

1c

A

?

),,( 0yx0c

1

00

l

p

03221100 )()0,()()0,()()0,()(),( pRlTRlTRlTRyxTp

100

010

01

)0,(1

1

l

lT

82

100

0cossin

0sincos

)( 22

22

2

R

Page 83: CSCE441: Computer Graphics 3D Transformations

Composite 2D Transformation

What’s the current coordinate A ?

1

2

3

3c

2c

1c

A

?

),,( 0yx0c

1

00

l

p

03221100 )()0,()()0,()(),0()(),( pRlTRlTRlTRyxTp

100

10

001

),0( 00 llT

83

100

0cossin

0sincos

)( 11

11

1

R

Page 84: CSCE441: Computer Graphics 3D Transformations

Composite 2D Transformation

What’s the current coordinate A ?

1

2

3

3c

2c

1c

A

?

03221100 )()0,()()0,()(),0()(),( pRlTRlTRlTRyxTp

),,( 0yx0c

1

00

l

p

100

cossin

sincos

)(),( 00

00

0 y

x

RyxT

84

Page 85: CSCE441: Computer Graphics 3D Transformations

Composite 2D Transformation

What’s the current coordinate A ?

1

2

3

3c

2c

1c

A

03221100 )()0,()()0,()(),0()(),( pRlTRlTRlTRyxTp

),,( 0yx0c

85

Page 86: CSCE441: Computer Graphics 3D Transformations

How to Animate the Character?

A 2D lamp character

1

2

3

),,( 0yx

3c

2c

1c

0c

A

86

Page 87: CSCE441: Computer Graphics 3D Transformations

How to Animate the Character?

Keyframe animation

- Manually pose the character by choosing appropriate values for

- Linearly interpolate the inbetween poses.

- Works for any types of articulated characters!

87

),,,,,( 3210 yx

Page 88: CSCE441: Computer Graphics 3D Transformations

3D Transformation

A 3D point (x,y,z) – x,y, and z coordinates We will still use column vectors to represent

points Homogeneous coordinates of a 3D point

(x,y,z,1) Transformation will be performed using 4x4

matrix

x

y

z

88

Page 89: CSCE441: Computer Graphics 3D Transformations

Right-handed Coordinate System

x

y

z

;zyx ;xzy yxz

Left hand coordinate system

Not used in this class and

Not in OpenGL 89/94

Page 90: CSCE441: Computer Graphics 3D Transformations

3D Transformation

Very similar to 2D transformation

Translation transformation

11000

100

010

001

1

z

y

x

t

t

t

z

y

x

x

y

x

Homogenous coordinates

90

Page 91: CSCE441: Computer Graphics 3D Transformations

3D Transformation

Very similar to 2D transformation

Scaling transformation

11000

000

000

000

1

z

y

x

s

s

s

z

y

x

z

y

x

Homogenous coordinates

91

Page 92: CSCE441: Computer Graphics 3D Transformations

3D Transformation

3D rotation is done around a rotation axis Fundamental rotations – rotate about x, y, or

z axes Counter-clockwise rotation is referred to as

positive rotation (when you look down negative axis)

x

y

z

+

92

Page 93: CSCE441: Computer Graphics 3D Transformations

3D Transformation

Rotation about z – similar to 2D rotation

x

y

z

+

11000

0100

00cossin

00sincos

1

z

y

x

z

y

x

zz

yxy

yxx

'

cossin'

sincos'

93

Page 94: CSCE441: Computer Graphics 3D Transformations

3D Transformation

Rotation about y: z -> y, y -> x, x->z

11000

0cos0sin

0010

0sin0cos

1

z

y

x

z

y

x

yy

xzx

xzz

'

cossin'

sincos'

y

z

x

x

y

z

94

Page 95: CSCE441: Computer Graphics 3D Transformations

3D Transformation

Rotation about x (z -> x, y -> z, x->y)

x

y

z

11000

0cossin0

0sincos0

0001

1

z

y

x

z

y

x

xx

zyz

zyy

'

cossin'

sincos'

z

x

y

95

Page 96: CSCE441: Computer Graphics 3D Transformations

Inverse of 3D Transformations

Invert the transformation In general, X= AX’->x’=A-1X

11000

100

010

001

1

z

y

x

t

t

t

z

y

x

x

y

x

1

'

'

'

1000

100

010

001

1

z

y

x

t

t

t

z

y

x

x

y

x

11000

0100

00cossin

00sincos

1

z

y

x

z

y

x

1

'

'

'

1000

0100

00cossin

00sincos

1

z

y

x

z

y

x

)(zR)( zR

T(tx,ty,tz)T(-tx,-ty,-tz)

Page 97: CSCE441: Computer Graphics 3D Transformations

3D Rotation about Arbitrary Axes

Rotate p about the by the angle

x

y

zr

),,( zyxp

r

97

Page 98: CSCE441: Computer Graphics 3D Transformations

3-D Rotation General rotations in 3-D require rotating

about an arbitrary axis of rotation

Deriving the rotation matrix for such a rotation directly is a good exercise in linear algebra

The general rotation matrix is a combination of coordinate-axis rotations and translations!

98

Page 99: CSCE441: Computer Graphics 3D Transformations

3D Rotation about Arbitrary Axes

Rotate p about the by the angle

x

y

zr

),,( zyxp

r

99

Page 100: CSCE441: Computer Graphics 3D Transformations

3-D Rotation General rotations in 3-D require rotating about

an arbitrary axis of rotation

Deriving the rotation matrix for such a rotation directly is a good exercise in linear algebra

Standard approach: express general rotation as composition of canonical rotations Rotations about x, y, z

100

Page 101: CSCE441: Computer Graphics 3D Transformations

Composing Canonical Rotations Goal: rotate about arbitrary vector r by θ

Idea: we know how to rotate about x,y,zSet up a transformation that superimposes

rotation axis onto one coordinate axisRotate about the coordinate axisTranslate and rotate object back via inverse of

the transformation matrix

101

Page 102: CSCE441: Computer Graphics 3D Transformations

Composing Canonical Rotations Goal: rotate about arbitrary vector r by θ

Idea: we know how to rotate about x,y,zSo, rotate about z by - until r lies in the xz

planeThen rotate about y by -β until r coincides

with +zThen rotate about z by θThen reverse the rotation about y (by β )Then reverse the rotation about z (by )

102

Page 103: CSCE441: Computer Graphics 3D Transformations

3D Rotation about Arbitrary Axes

Rotate p about the by the angle

x

y

zr

),,( zyxp

r

103

Page 104: CSCE441: Computer Graphics 3D Transformations

3D Rotation about Arbitrary Axes

Translate so that rotation axis passes through the origin

x

y

zr

TRRRRRT zyzyz )()()()()(1

104

Page 105: CSCE441: Computer Graphics 3D Transformations

3D Rotation about Arbitrary Axes

Rotation by about z-axis

x

y

z

r

TRRRRRT zyzyy )()()()()(1

105

Page 106: CSCE441: Computer Graphics 3D Transformations

3D Rotation about Arbitrary Axes

Rotation by about y-axis

x

y

z

r

xTRRRRRT zyzyy )()()()()(1

106

Page 107: CSCE441: Computer Graphics 3D Transformations

3D Rotation about Arbitrary Axes

Rotation by about z-axis

x

y

z

r

xTRRRRRT zyzyy )()()()()(1

107

Page 108: CSCE441: Computer Graphics 3D Transformations

3D Rotation about Arbitrary Axes

Rotation by about y-axis

x

y

z

r

xTRRRRRT zyzyy )()()()()(1

108

Page 109: CSCE441: Computer Graphics 3D Transformations

3D Rotation about Arbitrary Axes

Rotation by about z-axis

x

y

z

r

TRRRRRT zyzyz )()()()()(1

109

Page 110: CSCE441: Computer Graphics 3D Transformations

3D Rotation about Arbitrary Axes

Translate the object back to original point

x

y

z

r

TRRRRRT zyzyz )()()()()(1

110

Page 111: CSCE441: Computer Graphics 3D Transformations

3D Rotation about Arbitrary Axes

Final transformation matrix for rotating about an arbitrary axis

x

y

z

r

TRRRRRT zyzyz )()()()()(1

111

Page 112: CSCE441: Computer Graphics 3D Transformations

3D Rotation about Arbitrary Axes

Final transformation matrix for rotating about an arbitrary axis

x

y

z

r

TRRRRRT zyzyz )()()()()(1

112

Page 113: CSCE441: Computer Graphics 3D Transformations

3D Rotation about Arbitrary Axes

Final transformation matrix for rotating about an arbitrary axis

TRRRRRT zyzyz )()()()()(1

1000

0

0

0

333231

232221

131211

rrr

rrr

rrr

Page 114: CSCE441: Computer Graphics 3D Transformations

3D Rotation about Arbitrary Axes

Final transformation matrix for rotating about an arbitrary axis

TRRRRRT zyzyz )()()()()(1

A 3 by 3 Rotation matrix—orthogonal matrix

1000

0

0

0

333231

232221

131211

rrr

rrr

rrr

Page 115: CSCE441: Computer Graphics 3D Transformations

Rotation Matrices

Orthonormal matrix: orthogonal (columns/rows linearly

independent)normalized (columns/rows length of 1)

115

Page 116: CSCE441: Computer Graphics 3D Transformations

Rotation Matrices

Orthonormal matrix: orthogonal (columns/rows linearly

independent)normalized (columns/rows length of 1)

The inverse of an orthogonal matrix is just its transpose:

116

T

rrr

rrr

rrr

rrr

rrr

rrr

333231

232221

131211

1

333231

232221

131211

Page 117: CSCE441: Computer Graphics 3D Transformations

Rotation Matrices

Orthonormal matrix: orthogonal (columns/rows linearly

independent)normalized (columns/rows length of 1)

The inverse of an orthogonal matrix is just its transpose:

117

T

rrr

rrr

rrr

rrr

rrr

rrr

333231

232221

131211

1

333231

232221

131211

Page 118: CSCE441: Computer Graphics 3D Transformations

Rotation Matrices

Orthonormal matrix: orthogonal (columns/rows linearly

independent)normalized (columns/rows length of 1)

The inverse of an orthogonal matrix is just its transpose: e.g.,

T

xx

Tyy

Tzz

RR

RR

RR

)()(

)()(

)()(

1

1

1

123

Page 119: CSCE441: Computer Graphics 3D Transformations

3D Coordinate Transformation

Transform object description from to

pj

i

i

j

o

o

ji ij

),,( 000 zyx

k

'k

124

Page 120: CSCE441: Computer Graphics 3D Transformations

2D Coordinate Transformation

Transform object description from to

pj

i

i

j

o

o

ji ij

110010

0

y

x

yjjij

xjiii

y

xTT

TT

),( 00 yx

poooop

125

Page 121: CSCE441: Computer Graphics 3D Transformations

3D Coordinate Transformation

Transform object description from to

pj

i

i

j

o

o

ji ij

1

'

'

'

1000

'

'

'

10

0

0

z

y

x

zkkjkik

ykjjjij

xkijiii

z

y

x

TTT

TTT

TTT

),,( 000 zyx

k

'k

poooop

126

Page 122: CSCE441: Computer Graphics 3D Transformations

3D Coordinate Transformation

Transform object description from to

pj

i

i

j

o

o

ji ij

1

'

'

'

1000

'

'

'

10

0

0

z

y

x

zkkjkik

ykjjjij

xkijiii

z

y

x

TTT

TTT

TTT

),,( 000 zyx

k

'k

poooop

127

Page 123: CSCE441: Computer Graphics 3D Transformations

3D Coordinate Transformation

Transform object description from to

i

i

j

o

ji ij

1

'

'

'

1000

'

'

'

10

0

0

z

y

x

zkkjkik

ykjjjij

xkijiii

z

y

x

TTT

TTT

TTT

k

128

p'i

'j

Page 124: CSCE441: Computer Graphics 3D Transformations

3D Coordinate Transformation

Transform object description from toji ij

129

'i

11000

0cos0sin

0010

0sin0cos

1

z

y

x

z

y

x

x

y

z

Page 125: CSCE441: Computer Graphics 3D Transformations

Composite 3D Transformation

Similarly, we can easily extend composite transformation from 2D to 3D

1

2

3

),,( 0yx

3c

2c

1c

0c

A

130

Page 126: CSCE441: Computer Graphics 3D Transformations

Composite 3D Transformation

xRRhTRhTRRRhTRRRzyxTp )()()0,,0()()0,,0()()()()0,,0()()()(),,( 332211110000000

131