33
Points, Vectors, Lines, Spheres and Matrices ©Anthony Steed 2001-2003

1 Points, Vectors, Lines, Spheres and Matrices ©Anthony Steed 2001-2003

Embed Size (px)

Citation preview

1

Points, Vectors, Lines, Spheres and Matrices

©Anthony Steed 2001-2003

2

• Points• Vectors• Lines• Spheres• Matrices

• 3D transformations as matrices

• Homogenous co-ordinates

Overview

3

Basic Maths

In computer graphics we need mathematics both for describing our scenes and also for performing operations on them, such as projection and various transformations.

Coordinate systems (right- and left-handed), serve as a reference point.

3 axes labelled x, y, z at right angles.

4

Co-ordinate Systems

X

Y

Z

Right-Handed System(Z comes out of the screen)

X

Y

Z

Left-Handed System(Z goes in to the screen)

5

Points, P (x, y, z)

Gives us a position in relation to the origin of our coordinate system

6

Vectors, V (x, y, z)

Represent a direction (and magnitude) in 3D space

Points != VectorsVector +Vector = VectorPoint – Point = VectorPoint + Vector = PointPoint + Point = ?

7

Vectors, V (x, y, z)

v

w

v + w

Vector additionsum v + w

v2v

(-1)v (1/2)V

Scalar multiplication of vectors (they remain parallel)

v

w

Vector differencev - w = v + (-w)

v

-w

v - w

x

y

Vector OP

P

O

8

Vectors V

Length (modulus) of a vector V (x, y, z)|V| =

A unit vector: a vector can be normalised such that it retains its direction, but is scaled to have unit length: ||V of modulus

Vvector ^

V

VV

9

Dot Product

u · v = xu ·xv + yu ·yv + zu ·zv

u · v = |u| |v| coscos = u · v/ |u| |v|

This is purely a scalar number not a vector. What happens when the vectors are unit What does it mean if dot product == 0 or == 1?

10

Cross Product

The result is not a scalar but a vector which is normal to the plane of the other 2

Can be computed using the determinant of:

u x v = i(yvzu -zvyu), -j(xvzu - zvxu), k(xvyu - yvxu)

Size is u x v = |u||v|sin Cross product of vector with it self is null

uuu

vvv

zyx

zyx

kji

uuu

vvv

zyx

zyx

kji

uuu

vvv

zyx

zyx

kji

uuu

vvv

zyx

zyx

kji

11

Parametric equation of a line (ray)

Given two points P0 = (x0, y0, z0) and P1 = (x1, y1, z1) the line passing through them can be expressed as:

P(t) = P0 + t(P1 - P0)x(t) = x0 + t(x1 - x0)

y(t) = y0 + t(y1 - y0)

z(t) = z0 + t(z1 - z0)

=

With - < t <

12

Equation of a sphere

a

bchypotenuse

a2 + b2 = c2

P

xp

yp

(0, 0)

r

x2 + y2 = r2

Pythagoras Theorem:

Given a circle through the origin with radius r, then for any point P on it we have:

13

Equation of a sphere

If the circle is not centred on the origin:

(0, 0)

P

xp

yp

r

xc

yc ab

a

ba2 + b2 = r2

We still have

buta = xp- xc

b = yp- yc

So for the general case (x- xc)2 + (y- yc)

2 = r2

(xp,yp)

(xc,yc)

14

Equation of a sphere

Pythagoras theorem generalises to 3D giving

a2 + b2 + c2 = d2 Based on that we can easily

prove that the general equation of a sphere is:

(x- xc)2 + (y- yc)

2 + (z- zc)2 = r2

and at origin: x2 + y2 + z2 = r2

15

Matrix Math

©Anthony Steed 2001

16

Vectors and Matrices

Matrix is an array of numbers with dimensions M (rows) by N (columns)• 3 by 6 matrix• element 2,3

is (3)

Vector can be considered a 1 x M matrix•

zyxv

100025114311212003

17

Types of Matrix

Identity matrices - I

Diagonal

1001

1000010000100001

Symmetric

• Diagonal matrices are (of course) symmetric

• Identity matrices are (of course) diagonal

4000010000200001

fecedbcba

18

Operation on Matrices

Addition• Done elementwise

Transpose• “Flip” (M by N becomes N by M)

s d r c

q b p a

s r

q p

d c

b a

389

724

651

376

825

941T

19

Operations on Matrices

Multiplication• Only possible to multiply of dimensions

– x1 by y1 and x2 by y2 iff y1 = x2

• resulting matrix is x1 by y2

– e.g. Matrix A is 2 by 3 and Matrix by 3 by 4• resulting matrix is 2 by 4

– Just because A x B is possible doesn’t mean B x A is possible!

20

Matrix Multiplication Order

A is n by k , B is k by m C = A x B defined by

BxA not necessarily equal to AxB

k

l

ljilij bac1

*

*****

*****

*.

*.*.*.*.*.

*****

*...

*.*.*.*.*.

*****.....

21

Example Multiplications

____

____

1011

12

101132

__________________

010001100

111013322

22

Inverse

If A x B = I and B x A = I then

A = B-1 and B = A-1

23

3D Transforms

In 3-space vectors are transformed by 3 by 3 matrices

ziyfxczhyexbzgydxa

ihg

fed

cba

zyx

24

Scale

Scale uses a diagonal matrix

Scale by 2 along x and -2 along z

zcybxac

ba

zyx

000000

1046200

010002

543

25

Rotation

Rotation about z axis

Note z values remain the same whilst x and y change

1000)θcos()θsin(-0)θsin()θcos(

Y

X

θ yx

yθ cosxθ sin yθ sin-xθ cos

26

Rotation X, Y and Scale

About X

About Y

Scale (should look familiar)

)θcos()θsin(-0

)θsin()θcos(0

001

)θcos(0)θsin(010

)θsin(-0)θcos(

cb

a

000000

27

Homogenous Points

Add 1D, but constrain that to be equal to 1 (x,y,z,1)

Homogeneity means that any point in 3-space can be represented by an infinite variety of homogenous 4D points• (2 3 4 1) = (4 6 8 2) = (3 4.5 6 1.5)

Why?• 4D allows as to include 3D translation in matrix

form

28

Homogenous Vectors

Vectors != Points Remember points can not be added If A and B are points A-B is a vector Vectors have form (x y z 0) Addition makes sense

29

Translation in Homogenous Form

Note that the homogenous component is preserved (* * * 1), and aside from the translation the matrix is I

1

1010000100001

1 czbyax

cba

zyx

30

Putting it Together

R is rotation and scale components T is translation component

TR

TTT

RRR

RRR

RRR

.

1

0

0

0

321

987

654

321

31

1432

1432010000100001

1

1432010000100001

1000001001000001

1

YZXYZXZYX

1442

1000011001000001

1442

1000001001000001

1432010000100001

1

YZXZYXZYX

Order Matters

Composition order of transforms matters• Remember that basic vectors change so

“direction” of translations changed

32

Exercises

Calculate the following matrix: /2 about X then /2 about Y then /2 about Z (remember “then” means multiply on the right). What is a simpler form of this matrix?

Compose the following matrix: translate 2 along X, rotate /2 about Y, translate -2 along X. Draw a figure with a few points (you will only need 2D) and then its translation under this transformation.

33

Matrix Summary

Rotation, Scale, Translation Composition of transforms The homogenous form