Vector Angles

The methods described herein relate to the construction and interpretation of Vector Angles as provided for within ODIN software (‘Calculations>New Vector Angle…’).

A vector angle is the angle between two vectors (which we may visualize as straight lines). Most users will be familiar with the notion of the angle between two straight lines on a flat (2D) surface (extended to their point of intersection if necessary). Less widely used are the more general concepts of vectors – directed straight lines in 3D space – which almost certainly have no real point of intersection at which to measure the (3D) angle.

There is, moreover, a clear distinction between vectors we might call position vectors and the more general, free vectors used to define vector angles. A position vector is, of course, a vector quantity (having three ordered components representing both magnitudes and directions), but one whose interpretation is anchored to the origin of a co-ordinate frame; indeed the term ‘position vector’ is synonymous with ‘3D co-ordinates’.

The more general type of free vector, however, is not anchored to any origin and need not necessarily correspond to a line between two points in space, although it still has the same components representing magnitudes and directions. The relative orientation of any two such vectors will give rise to a vector angle whose name we can choose and whose definition can be saved in a Setup file. Any number of vector angles may be defined and saved according to the guidelines below.

Defining two vectors

The first step consists of defining the two vectors. Choose Calculation>New Vector Angle from the menu at the top of the ODIN window. A new dialogue box will open.

We are presented with a comprehensive menu from which to choose the construction of the requisite two free vectors. Each vector can be defined either by choosing two points or as the normal to a plane.

In the first case, the vector is defined like a straight line between the first two points chosen (they must, of course, be different). For example, two markers on the index finger might define a vector to represent the direction in which the finger points, but only if we are clear which way is positive. The positive sense of such a vector would be the direction from the first marker to the second. To choose this option, tick the “Directed Line 1  2” box; the “Point 3” combo-boxes will become un-selectable.

Alternatively one may select three, well separated points to represent a plane whose normal (perpendicular to the plane) defines the vector. The positive sense of this normal vector depends on the cyclic spatial order of the three points chosen (it is calculated as a ‘cross’ product of two vectors lying in the plane). For example, we might place three markers about the cranium to define a head-orientation plane whose normal would define local (head) vertical:


To choose this option, select the “Normal to plane 1-2-3” box. The three combo-boxes will become selectable.

Whereas the first option is a secure definition (provided that the two chosen points never coincide), the security of the second (planar definition) depends on the three chosen points remaining ‘well separated’ throughout the data sequence; and in this case, well separated means non co-linear as well as non co-incident (three points in a straight line do not represent a plane). Due care must be taken when defining a vector by the latter option. It is also advised that the distance between each point is as big as possible.


3D Vector Angles

A ‘3D’ vector angle is calculated by means of the inverse cosine (trigonometric) function applied to the scalar (“dot”) product of the two vectors. The angle obtained is that which would be measured by a protractor if the two vectors were brought together to intersect in a single point. Of course, the intersection of two straight lines actually presents two angles (α and β as shown in the diagram) and the trigonometry obtains whichever is sandwiched between the positive senses of both vectors (β in this case)


It is quite easy to make a mistake with a vector definition which results in a reversal of direction and consequently obtains the supplementary angle (α=180°-β). This situation is easily identified on a graph plot provided the angle in question varies from an approximate, fixed right-angle. It is easily rectified by reversing one of the vector definitions.

NOTE: the trigonometric derivation of 3D angles delivers values in the range 0° to 180° only. In particular, the angle is always non-negative and should be regarded as an absolute angle between vectors. The 3D angle is, therefore, unsuitable for observing angles expected to vary from positive to negative (for example – foot attitude relative to the floor): instead of progressing from positive, through zero, into the negative range, the graph plot would show a characteristic ‘bounce’ from the abscissa. (Likewise, circular motions would not proceed beyond 180°, but bounce back and forth within the plotable range.)

The 3D angle would be ideal, however, to measure the absolute deviation of ‘head-vertical’ (as in the example above) from true laboratory vertical. Head-vertical’ is the vector depicted by the bold arrow (derived as the normal to the plane of M1 M2 M3). True vertical is shown by the taller arrow. The 3D vector angle represents absolute deviation with no hint about left, right, fore, or aft.

To appreciate the absolute nature of a 3D angle consider how this head might process (like a gyroscope) around true vertical: from any vantage point the head-angle would be seen to be changing yet the 3D angle could remain more or less constant. In order to obtain an angular measure which corresponds to an axial view, one should employ a 2D angle.

2D Vector Angles

The options for 2D angles correspond to fixed-axis stick figure views. Any chosen option for a 2D angle might be regarded as a projection of the 3D case onto the chosen plane so that the obtained angle is that which would be observed on the corresponding stick figure view.

When viewing a projection, we are in a position to visualize the intersection of the projected vectors and, hence, the angle between them. The essential difference from the 3D case is that projected vectors (extended if necessary) really must intersect on a 2D surface (unless they happen to be parallel). The trigonometry applied to the simpler 2D geometry allows us to determine not only which of the supplementary angles to determine, but whether the angle is positive or negative, though the sense of the angle is arbitrarily decided by the order in which the vectors are defined. To make life easier, ODIN makes a ‘majority decision’ about the sign of a 2D angle, assuming that it ought to be positive more often than negative throughout the acquired movement data. A further, arbitrary sign inversion is an option for the final angle definition (even for a 3D angle), along with an arbitrary offset (which might usefully be set to 180° in some cases.

Applied to the head-tilt example above, the sagittal (XZ plane) 2D angle of the processing head would indicate a positive vector angle for the head tilted forward and negative for a backward tilt but would indicate zero for pure left or right tilt.

As another illustration, consider investigating the angle between left and right femurs as defined using hip — knee vectors. In this over-simplification we would expect to observe an exaggerated ‘scissor’ action in the sagittal view, with the angle passing through zero each time one femur swings in front of the other. If we defined the 2D angle such that ‘left in front of right’ produced a positive angle, we might deduce something about the left-right symmetry of gait by comparing the positive and negative portions of the graph plot. The 3D angle, on the other hand, would continue to describe the absolute angle between femurs.