vector tools (ch 4) page 1 cs 367 scalars, points and vectors (4.2) we will only cover 4.1 - 4.4 the...

9
Vector Tools (Ch 4) page 1 CS 367 Scalars, Points and Vectors (4.2) We will only cover 4.1 - 4.4 The author has managed to make a simple topic be much more complicated than necessary! Scalar - real value Point / Vertex - a location in space (3D) Vector - an entity with direction and magnitude does not have a fixed location often represented as directed line segments (a ray)

Upload: melvin-white

Post on 20-Jan-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Vector Tools (Ch 4) page 1 CS 367 Scalars, Points and Vectors (4.2) We will only cover 4.1 - 4.4 The author has managed to make a simple topic be much

Vector Tools (Ch 4) page 1CS 367

Scalars, Points and Vectors (4.2)

• We will only cover

4.1 - 4.4

• The author has managed to make a simple topic be much more complicated than necessary!

• Scalar - real value

• Point / Vertex - a location in space (3D)

• Vector - an entity with direction and magnitude

does not have a fixed location

often represented as directed line segments (a ray)

Page 2: Vector Tools (Ch 4) page 1 CS 367 Scalars, Points and Vectors (4.2) We will only cover 4.1 - 4.4 The author has managed to make a simple topic be much

Vector Tools (Ch 4) page 2CS 367

uisGL (3D object library)

• The book explains that OpenGL is not OO

• This API helps to hide an internal data structure and some mathematical operations

• Refer to Documentation for more information

• uisGL Data types

float S;

uisVertex P1, P2(x,y,z);

uisVector V1, V2;

Page 3: Vector Tools (Ch 4) page 1 CS 367 Scalars, Points and Vectors (4.2) We will only cover 4.1 - 4.4 The author has managed to make a simple topic be much

Vector Tools (Ch 4) page 3CS 367

Point / Vertex Operations

• Point-Point Subtraction

Vector = Point - Point

uisVertex P1(10, 10, 5), P2(7, 7, 9);

V = P1 - P2;

cout << V;

• Point-Vector Addition

P1.set(4, 4, 4);

P2= V + P1;

cout << P2;

• Calculating Points on a line

Midpoint = (P1 + P2) / 2

What about?

P3 = (P1 + P2) / 3

• Parametric Form of a Line

float t = 0.5

P3 = P1 + V * t

P3 = P1 + (P2 - P1) * t

Page 4: Vector Tools (Ch 4) page 1 CS 367 Scalars, Points and Vectors (4.2) We will only cover 4.1 - 4.4 The author has managed to make a simple topic be much

Vector Tools (Ch 4) page 4CS 367

Vector Operations

• Magnitude

the length of a vector is a scalar

sqrt(V*V)

len = V1.length();

• Unit Vector

Vector of length one

v / |v|

V1.normalize();

• Vector-Vector Addition

Vector = Vector + Vector

V3 = V1 + V2

Page 5: Vector Tools (Ch 4) page 1 CS 367 Scalars, Points and Vectors (4.2) We will only cover 4.1 - 4.4 The author has managed to make a simple topic be much

Vector Tools (Ch 4) page 5CS 367

Dot product (4.3)

S = V1 * V2

S = V1.x*V2.x + V1.y*V2.y + V1.z*V2.z

Vectors are perpendicular if V1 * V2 = 0

dot product of unit vectors equals cosine of angle

cos (theta) = u * v

• Remember

cosine of 0 = 1

cosine of 90 = 0

cosine of 180 = -1

Page 6: Vector Tools (Ch 4) page 1 CS 367 Scalars, Points and Vectors (4.2) We will only cover 4.1 - 4.4 The author has managed to make a simple topic be much

Vector Tools (Ch 4) page 6CS 367

Cross product (4.4)

• cross product of two vectors results in a third vector perpendicular to both

• Calculation

(AyBz - AzBy, AzBx - AxBz, AxBy - AyBx)

• Sample code

uisVector V, V1, V2

V = V1 | V2

• Right handed?

Direction of the perpendicular vector is based on the right handed system

V1 | V2

V2 | V1

• Group Activity

Given three points

Find a vector perpendicular to the plane

Make it a unit vector

Page 7: Vector Tools (Ch 4) page 1 CS 367 Scalars, Points and Vectors (4.2) We will only cover 4.1 - 4.4 The author has managed to make a simple topic be much

Vector Tools (Ch 4) page 7CS 367

Homogeneous Representations 4.5

• 3D points and vectors are represented in 4D

• this helps make some future calculations easier using matrix multiplication

P = (x, y, z, 1)

V = (x, y, z, 0)

• Note the calculations

adding two vectors results in w = 0

adding a vector to a point results in w = 1

Page 8: Vector Tools (Ch 4) page 1 CS 367 Scalars, Points and Vectors (4.2) We will only cover 4.1 - 4.4 The author has managed to make a simple topic be much

Vector Tools (Ch 4) page 8CS 367

Parametric Representations 4.5

• line segment

t = time along the line

P’ = P1 + (P2 - P1) * t

P’ = P1(1-t) + P2(t)

• perpendicular bisector

M = midpoint

x(t) = Mx - (By - Ay)t

y(t) = My + (Bx - Ax)t

• segment length

sqrt ((Bx - Ax)2 + (By-Ay)2)

Page 9: Vector Tools (Ch 4) page 1 CS 367 Scalars, Points and Vectors (4.2) We will only cover 4.1 - 4.4 The author has managed to make a simple topic be much

Vector Tools (Ch 4) page 9CS 367

A plane

• Given three points

• P = P1 + (P2-P1)t + (P3-P1)*s

• Calculate the centroid of a polygon

P = (P1 + P2 + P3) / 3;