### VectorMethods

```David T. Allison
Department of Earth Sciences
University of South Alabama
[email protected]
http://www.usouthal.edu/geography/allison/research/VectorMethods.pptx
Presentation Outline
• Mathematical and Geometrical Basis of
3D Vector Manipulation
Examples
Running on Tablet and/or Smart
Phones
3D Coordinate system for orientation data
-Z

+Y (North)
Orthogonal coordinate system
using directional angles alpha,
beta, and gamma.
+X (East)



-X (West)

Data Vector=
unit length
-Y (South)
+Z
Projection of data vector
upon 3D axes = directional
componets (x,y,z)
Projection of data vector
upon Z axis (cos )
Directional components of the
(x, y, z) axes are equal to cos(α),
cos(β), and cos(γ) respectively
Key mathematical concepts for
manipulating 3D vectors
• Data Conversion: standard azimuth and plunge of a linear
orientation can be converted to directional components (x,y,z)
or directional angles (α,β,γ)
• Dot Product: calculates the angle between two non-parallel
vectors
• 3D Vector addition: operates in the same fashion as 2D “headto-tail” method but with the additional z component
• Cross Product: calculates the vector that is perpendicular to the
plane containing 2 non-parallel vectors
• Rotation: the rotation of a 3D vector about a 3D rotation axis
uses a combination of the above calculations
Converting Orientation Data to 3D
Vectors
• Planar orientations must be converted to poles
• Azimuth and plunge of a linear orientation can be
converted to directional components with below
equations:
• x = sin (azimuth) * sin (90-plunge)
• y = cos (azimuth) * sin (90-plunge)
• z = cos (90-plunge)
• Note that the directional angles , , and  are
related to the directional components by:
•  = cos-1 (x)
•  = cos-1 (y)
•  = cos-1 (z)
Dot Product of 2 Non-Parallel Vectors
• For 2 non-parallel data vectors with directional angles (α1,β1,γ1) and
(α2,β2,γ2) respectively:
cos( )  cos( 1 ) cos( 2 )  cos( 1 ) cos(  2 )  cos( 1 ) cos( 2 )
Cross Product
• Cross Product Method: given two non-parallel vectors calculates the
orientation of the pole (perpendicular) to the plane that contains the
two given vectors.
• Orientation data must be converted to directional components.
• The dot-product is used to calculate the angle θ between the given nonparallel vectors.
• The answer is calculated by 3 separate equations: one for each axis
component.
• The magnitude of the cross-product vector is not important for
orientation calculations, but is = (vector 1)(vector 2)(sin θ)
cos( ) 
[cos( 1 ) cos( 2 )  cos( 1 ) cos( 2 )]
sin( )
cos(  ) 
 [cos(1 ) cos( 2 )  cos( 1 ) cos( 2 )]
sin( )
cos( ) 
[cos(1 ) cos( 2 )  cos( 1 ) cos( 2 )]
sin( )
Geometry of the Cross Product Vector
Plane defined by data vectors 1 and 2
Data vector 1
Data vector 2

Perpendicular vector from
cross product with
magnitude =
(vector 1)(vector)(sin θ)
Rotational path generated by a horizontal rotation
axis
Equal-Area Lower Hemisphere
R
• Rotation of a
vector (030,
axis (000, 0=“R”)
through 360
degrees clockwise
as viewed from the
center of the net
toward the trend of
the rotation axis
(R)
• Note: rotation
angles are
“mathematical”
therefore clockwise
angles are negative
start
-180
-135
-315
-360
-90
-270
-45
-225
-180
Horizontal versus non-horizontal rotational axes
horizontal
(plunge=0) axis
generates a
stereonet small
circle path
plunging axis
generally creates an
elliptical path that
does not match
either a small circle
or great circle on
the stereonet
Equal Area Projection
NR1 10
350
340
20
330
30
320
40
310
50
300
60
290
70
280
80
R2
W
E
260
100
250
110
240
120
230
130
220
140
210
150
200
190
S
170
160
Geometry of the Rotational 3D Vector
Method
Circle of
rotation
Lower
hemisphere
surface
θ
Rotational
axis
V= rotated data
attitude
X
Data
vector
O
+S= original data attitude
+S (x,y,z)
A(a,b,c)
P
+Q
P
-Q
r
Circle of
rotation
plane
-S
-S
Y
Method of 3D Vector Addition Utilized to Process
Rotations



 


OP  OA OA OS


PQ  OA 


PS  PQ 


OS


OA


PX  cos( r)  PS


PY  sin( r)  PQ

 
 

OV  OP  PX  PY
OP is the rotational axis multiplied by the dot product of the
rotation axis and data vector. This yields the vector with
head at the center of the circle of rotation (OP).
PQ is the vector perpendicular to the cross product of OA and
OS. The magnitude of the cross product is equal to
(OA)(OS)(sin θ) where θ is the angle between OA and OS.
Since OA and OS are unity, PQ is exactly the magnitude to
"touch" the circle of rotation. PS is then calculated by taking
the cross product of PQ and OA.
PX is the projection of the rotated data vector (PV) upon the
PS vector. The rotation amount is “r”
PY is the projection of the rotated data vector (PV) upon the
PQ vector.
vector is calculated in terms of the orthogonal coordinate
system defined above.
http://www.usouthal.edu/geography/allison/GY403/RotationByComponents.mcd
http://www.usouthal.edu/geography/allison/GY403/RotationByComponents.pdf
Programming example of rotational
calculations
• Given a data vector (x1,y1,z1) and a rotation axis vector (x2,y2,z2) and a
rotation angle r, the following equations calculate the new rotated
orientation:
• tp = (x1*x2+y1*y2+z1*z2) * (1-cos(r))
• rot_x = cos(r)*x1+tp*x2+[sin(r)*(y2*z1-z2*y1)]
• rot_y = cos(r)*y1+tp*y2-[sin(r)*(x2*z1-z2*x1)]
• rot_z = cos(r)*z1+tp*z2+[sin(r)*(x2*y1-y2*x1)]
• Note that the rotated position may result in a negative z component that
would plot in the upper hemisphere of a stereonet (i.e. a negative
plunge). In that case the (x, y, z) components should be multiplied by -1
to “reflect” it back to the lower hemisphere projection.
Implementation of 3D Vector Analysis as
Problem
Angle between 2 Linear orientations
Orientation of intersection of 2 non-parallel planes
Orientation of Plane containing to 2 non-parallel lines
Rotate a line around a rotational axis by a specified angle
Mathematical Method
Dot Product
Cross Product
Cross Product
Cross Product, Dot Product
N/A
IntersectingPlanes.xlsm
CommonPlane.xlsm
Rotation.xlsm
versions of Excel 2010
• Quickoffice runs on Android, iPad, iPhone OS
• Formatting:
• Blue cells: data entered
• Magenta cells: labels or formulae
• Green cells: calculation results
Planes (IntersectingPlanes.xlsm)- 2 Fold Limbs
Projection:
Data I.D.:
Plane 1:
Plane 2:
Equal Area
Ex 1A, Prob. 1
Strike Azimuth Dip
310.00
40.00
70.00
20.00
E
E
Pole Az. Pole Pl.
220.000
20.000
310.000
70.000
NETPROG
diagram
Pole 1
Pole 2
Cos(alpha) Cos(beta)
Cos(gamma) Cos(alpha) Cos(beta) Cos(gamma) Theta(rad.s) Theta(deg.s)
-0.604
-0.720
0.342
-0.262
0.220
0.940
1.244
71.253
Fold Hinge
Intersection
Cos(alpha)
Cos(beta)
Cos(gamma)
3D
-0.794
0.505
-0.339
Lower hemi.:
0.794
-0.505
0.339
N
Limb 2
Limb 1
040, 20E
310, 70E
Intersection
Azimuth
Plunge
122.454
19.840
W
• In this case the intersecting planes were 2
planar fold limbs, therefore, the intersection
is the hinge orientation (122.5, 19.8)
E
Hinge
S
122.5, 19.8
Application of Cross-Product and Dot-Product Example:
yields attitude of fold hinge given the two limb attitudes
Intersecting Planes: Apparent Dip
Example
Projection:
Data I.D.:
Plane 1:
Plane 2:
Equal Area
App. Dip
Strike Azimuth Dip
50.00
290.00
40.00
90.00
Pole Az. Pole Pl.
E
320.000
50.000
E
200.000
0.000
Apparent Dip
Pole 1
Pole 2
Cos(alpha) Cos(beta)
Cos(gamma) Cos(alpha) Cos(beta) Cos(gamma) Theta(rad.s) Theta(deg.s)
N
-0.413
0.492
0.766
-0.342
-0.940
0.000
1.898
108.747
Example
Plane 1
Intersection
Cos(alpha)
Cos(beta)
Cos(gamma)
3D
0.760
-0.277
0.588
Lower hemi.:
0.760
-0.277
0.588
050, 40E
Plane 2
290, 90
Intersection
Azimuth
Plunge
110.000
36.005
• Given strike & dip of 050, 40E (Plane 1),
calculate apparent dip along vertical plane
trending 110
• Apparent dip plane is equivalent to 290, 90
(Plane 2) strike & dip
W
E
110, 36
App. Dip
Intersection
S
(CommonPlane.xlsm) to 2 Non-parallel Linear
Data- Find Strike & Dip from 2 Apparent Dips
Projection:
Equal Area
Linear 1
Data ID
Azimuth
Strike & Dip Ex. 310.000
Linear 1
Cos(alpha)
Cos(beta)
-0.740
0.621
Theta
Theta
Angle(deg.s)
1.560
89.367
Cross-product
Cos(alpha)
3D
0.540
Lower hemisphere
0.540
Plane
Strike azimuth
Dip
329.462
Linear 2
Azimuth
plunge
210.000
35.000
Linear 2
Cos(gamma) Cos(alpha)
Cos(beta)
Cos(gamma)
0.259
-0.410
-0.709
0.574
plunge
15.000
Strike & Dip Example
N
App. Dip 1
Cos(beta) Cos(gamma)
Pole
Pole
0.318
0.779 Azimuth
Plunge
0.318
0.779
59.462
51.194
38.806 W
True Dip Vector True Dip Vector True Dip Vector
Azimuth
Plunge
Cos(gamma)
W
239.462
38.806
0.627
• Note that Cross-Product calculates pole to
plane that contains the 2 apparent dip linear
vectors
• The true dip trend is always 180 degrees
from the pole trend, and the dip angle is
always = 90 – pole plunge
Pole to Plane
E
Strike & Dip: 329.5,38.8W
App. Dip 2
S
Application of Common Plane
Calculation from 2 Apparent Dips
Lineation
vector 1
Plane containing
lineations 1 & 2

Cross-product vector of
lineations 1 & 2 =
perpendicular (pole) to
plane containing
lineations 1 & 2
angle
between poles
1&2
Lineation
vector 2
Rotational Problem Scenarios
• Rotational fault
• Retro-deforming a fold limb
• Rotating cross-bedding to original
attitude
a line about a rotational axis
(Rotation.xlsm) - Rotational Fault
Projection
Equal Area
Data set
Bedding
Data vector
Cos(alpha)
Az. data
T_dot
Factor
Pl. data
Az. axis
Pl. axis
50.000
300.000
30.000
Axis vector
Cos(beta)
Cos(gamma) Cos(alpha)
Cos(beta)
Cos(gamma)
0.000
0.643
0.766
-0.750
0.433
0.500
Axis/Data
Axis/Data
Theta(deg.s)
0.992
0.848
48.597
0.000
Rotated
3D
Lower hemisphere
Rotated
Azimuth
129.489
Rotated planar
Strike
39.489
rotation angle
Cos(alpha)
-0.735
0.735
Rotated
Plunge
17.729
Rotated planar
Dip
72.271
Cos(beta)
Cos(gamma)
0.606
-0.305
-0.606
0.305
Rotational Fault Example
350 N
10
340
20
330
30
Rotation Path
120
320
310
300
50
P
48.6
60
L
R
290
40
70
280
Rotated planar dip
W
current
increment
120.000
5.000
80
Fault Plane
W
260
100
Rotated Bedding L'
N 39.5 E 72.3 W
250
110
P'
240
increment macro: <ctrl>+i
decrement macro: <ctrl>+d
E
230
Given a rotational fault axis (300,30) and that bedding
(090,40S) was rotated 120 degrees calculate the new
bedding attitude = 39.5, 72.3W
120
130
220
140
210
150
200
190
S
170
160
Special Considerations for Tablet/Smart
• Spreadsheet layout should be compact for limited
screen area
• Currently “named” cells are not supported
• Graphics are generally not practical or are not
supported
• VB macros are not supported
Quickoffice on the Android OS
Compact Layout of
“CommonPlane.xlsx” in Quickoffice
Excel “Named” Cell Constraints
• “Named cells” uses symbolic names to represent cell
• Named cells cannot be used with current
(example from “CommonPlane.xlsx”
Excel Graphics and VB Macros
•
•
VB macros are not supported in current Tablet/Smart Phone applications
Graphics are not practical with smart phones but may be possible on tablets
Web Site Resources
• Excel 2010 Spreadsheets with graphics and dynamic VB macros:
• http://www.usouthal.edu/geography/allison/GY403/CommonPla
ne.xlsm
• http://www.usouthal.edu/geography/allison/GY403/IntersectingP
lanes.xlsm
• http://www.usouthal.edu/geography/allison/GY403/Rotation.xls
m
• Smart Phone/ Tablet compatible spreadsheet versions:
• http://www.usouthal.edu/geography/allison/GY403/CommonPla
ne.xlsx
• http://www.usouthal.edu/geography/allison/GY403/IntersectingP
lanes.xlsx
• http://www.usouthal.edu/geography/allison/GY403/Rotation.xlsx
• NETPROG stereonet application:
• http://www.usouthal.edu/geography/allison/w-netprg.htm
• QuickOffice web site:
• http://www.quickoffice.com/
Concluding Scenario…
```