Professional Documents
Culture Documents
Basic Math - Vectors & Lines
Basic Math - Vectors & Lines
Laboratory for Percutaneous Surgery – The Perk Lab Copyright © Gabor Fichtinger, 2008
Vector in 2D
x
p=P(x,y) =
y
P
|p|
p y= | p | *sin(α)
α
x
x = | p | *cos(α)
Laboratory for Percutaneous Surgery – The Perk Lab Copyright © Gabor Fichtinger, 2008
Vector in 3D
y
z x
p =P(x,y,z) = y
_ z
P
p z
x
y
x
Laboratory for Percutaneous Surgery – The Perk Lab Copyright © Gabor Fichtinger, 2008
Unit vector
P(x,y,z)
p
length(p) = 1
sqrt(x2 + y2+ z2) = 1
Laboratory for Percutaneous Surgery – The Perk Lab Copyright © Gabor Fichtinger, 2008
Scaling up/down a vector
y Q = s * P = (s*x,s*y,s*z)
s> 1 stretch
P(x,y,z) s< 1 shrink
s= 1 leave it alone
s= 0 probably wrong…
Laboratory for Percutaneous Surgery – The Perk Lab Copyright © Gabor Fichtinger, 2008
Create unit vector from a vector
a.k.a. “normalize” a vector
|v| =1
v = a / |a| or v = a /length(a)
Laboratory for Percutaneous Surgery – The Perk Lab Copyright © Gabor Fichtinger, 2008
Create unit vector from a vector (Example)
Q(3,4,0)
v so that |v| =1
x
length(Q) =sqrt(3*3 + 4*4+0*0) = sqrt(25) = 5
v = (3/5, 4/5, 0)
Laboratory for Percutaneous Surgery – The Perk Lab Copyright © Gabor Fichtinger, 2008
Sum of vectors
y p + p = p (x +x , y +y , z +z )
1 2 3 1 2 1 2 1 2
p3 p2
p2 (x2,y2,z2)
p1 (x1,y1,z1)
x
Laboratory for Percutaneous Surgery – The Perk Lab Copyright © Gabor Fichtinger, 2008
Subtraction of vectors
p1 (x1,y1,z1)
-p2
p2(x2,y2,z2)
p3= p1 - p2 = p1 + (- p2)
p3 (x1-x2, y1-y2, z1-z2)
x
Reverse p2 and catenate to p1 !
Laboratory for Percutaneous Surgery – The Perk Lab Copyright © Gabor Fichtinger, 2008
Vector from A to B
B (x1,y1,z1)
A (x2,y2,z2)
x
AB = B – A = (x1-x2, y1-y2, z1-z2)
Subtract A from B
Laboratory for Percutaneous Surgery – The Perk Lab Copyright © Gabor Fichtinger, 2008
Distance between A to B
B (x1,y1,z1)
A (x2,y2,z2)
x
Distance = length( AB) = length(B – A) =
sqrt( (x1-x2)2 + (y1-y2) 2 + (z1-z2) 2 )
Laboratory for Percutaneous Surgery – The Perk Lab Copyright © Gabor Fichtinger, 2008
Vector equation of a line
y L L = P + t*v
or broken to x,y,z components
v Lx = Px + t*vx
P Ly = Py + t*vy
x Lz = Pz + t*vz
Infinite line:
t=(-inf,inf)
Ray:
x t=(0,inf)
Segment:
t=(tmin, tmax)
Laboratory for Percutaneous Surgery – The Perk Lab Copyright © Gabor Fichtinger, 2008
Create the direction vector of a line
Laboratory for Percutaneous Surgery – The Perk Lab Copyright © Gabor Fichtinger, 2008
Vector equation of a line
y
L
v L = P + t*v
then
P L - P = t*v
x then
|L - P | = t|v |
Laboratory for Percutaneous Surgery – The Perk Lab Copyright © Gabor Fichtinger, 2008
Cross product
u
Cross product = 0 if and only if v
sin(α)=0
i.e. u and v are parallel
Laboratory for Percutaneous Surgery – The Perk Lab Copyright © Gabor Fichtinger, 2008
Area of a triangle
Laboratory for Percutaneous Surgery – The Perk Lab Copyright © Gabor Fichtinger, 2008
Is the point P on the line?
P-S=c
L
α
v
S
Laboratory for Percutaneous Surgery – The Perk Lab Copyright © Gabor Fichtinger, 2008
Dot product
u(x1,y1,z1) v(x2,y2,z2) v
α
u
dot product = u * v = |u| * |v| * cos(α) =(x1x2 + y1y2 + z1z2)
v=(x,y,z)
length(v) = sqrt(x2 + y2+ z2) = sqrt( dot(v,v) )
Laboratory for Percutaneous Surgery – The Perk Lab Copyright © Gabor Fichtinger, 2008
Some More Dot Product Facts
ab = ba commutative
(ab)c != a (bc) not associative
(a + b )c = ac + bc distributive with addition
Laboratory for Percutaneous Surgery – The Perk Lab Copyright © Gabor Fichtinger, 2008
Angle between vectors
dot(u,v) =cos(α)
Laboratory for Percutaneous Surgery – The Perk Lab Copyright © Gabor Fichtinger, 2008
Distance of a point from a line
P
P
d Distance=|d|
d= ?
90
90 c
a
α _
_
A v
A v
_ L1 = P1 + t1*v1
L1 L2 = P2 + t2 *v2
x ----------------------
_
L1x = P1x + t1 *v1x
_ v1 x L2
L1y = P1y + t1 *v1y
P1 L1z = P1z + t1 *v1z
x
v2 L2x = P2x + t2 *v2x
L2y = P2y + t2 *v2y
L2z = P2z + t2 *v2z
_
P where
x 2 t=(-inf,inf)
u=(-inf,inf)
Laboratory for Percutaneous Surgery – The Perk Lab Copyright © Gabor Fichtinger, 2008
Intersection of 2 lines
_
P2
x
Laboratory for Percutaneous Surgery – The Perk Lab Copyright © Gabor Fichtinger, 2008
Intersection of 2 lines – IMPOSSIBLE
Laboratory for Percutaneous Surgery – The Perk Lab Copyright © Gabor Fichtinger, 2008
Approximate Intersection of 2 lines
Intuition: Find the line that is perpendicular to both lines
L1
L2
L3
M v1 x v2 = v3
90 90
d/2
d/2 x
v3
v1
x
P1 v2
x
REMINDER: If v1(x1,y1,z1), v2(x2,y2,z2),
P2
and v3(x3,y3,z3), then the cross product is
x3=y1*z2-y2*z1
y3=x2*z1-x1*z2
z3=x1*y2-x2*y1
Laboratory for Percutaneous Surgery – The Perk Lab Copyright © Gabor Fichtinger, 2008
Write up the equation of each line
L1
L2
L3
90 90 P3
x
v3
v1
x
P1 v2
x
P2
L1 = P1 + t1*v1
L2 = P2 + t2 *v2
L3 = P3 + t3 *v3
Laboratory for Percutaneous Surgery – The Perk Lab Copyright © Gabor Fichtinger, 2008
Derive conditions, make an equation system
L3 =L1 L2 =P3
90 90
v3
v1
x
P1 v2
x
P2
[1] L1 = P1 + t1*v1
[2] L2 = P2 + t2 *v2 Equations
Laboratory for Percutaneous Surgery – The Perk Lab Copyright © Gabor Fichtinger, 2008
Solve the vector equation system
M =( L1 + L2 ) /2
d= length (L1 - L2 )
Laboratory for Percutaneous Surgery – The Perk Lab Copyright © Gabor Fichtinger, 2008
ALTERNATIVE METHOD FOR FINDING THE MINIMUM DISTANCE AND CLOSEST POINT
BETWEEN TWO LINES IN SPACE
L1
90 v3 90 L2
u=t3 *v3
v1
x
P1 v2
x
P2
L1 = P1 + t1*v1
We look for the vector u that is perpendicular to both
L2 = P2 + t2 *v2 L1 and L2. This vector is expressed as u=t3 *v3. The
v3 =v1 x v2 /|v1 x v2 | length of it is t3 and its direction is determined by the v3
unit direction vector. v3 is the cross product of v1 and
v3 is normalized!!! v2, being perpendicular to both.
Laboratory for Percutaneous Surgery – The Perk Lab Copyright © Gabor Fichtinger, 2008
Find the mutually perpendicular vector between L1 & L2
L1 - L2 = t3 *v3
0 0 1
(P1 - P2 ) v3 = t3 ☺
Laboratory for Percutaneous Surgery – The Perk Lab Copyright © Gabor Fichtinger, 2008
Use the same “dot product trick” for t1 and t2
1 0
(2) (P1 - P2 ) v2 = -t1*v2 v1 + t2 *v2 v2 + t3 *v2 v3 if dot produce by v2
1 0
Laboratory for Percutaneous Surgery – The Perk Lab Copyright © Gabor Fichtinger, 2008
Let a1, a2 and d denote those scalars..
a1 1 d 0
(2) (P1 - P2 ) v2 = -t1*v1 v2 + t2 *v2 v2 + t3 *v2 v3
d 1
a2 0
Laboratory for Percutaneous Surgery – The Perk Lab Copyright © Gabor Fichtinger, 2008