N-Dimensional "Angles" Between Vectors

1.3k Views Asked by At

So I'm wondering if there is an elegant means of displaying an angle in higher dimensions.

Fair warning, I'm not sure if I'm explaining myself very well here, but I shall attempt to do so as best I can.

In two dimensions, an "angle" effectively describes the ratio between the x and y dimensions. In fact, that is precisely what the cosine of an angle is.

I am perfectly aware that one could describe the angle between two N-dimensional vectors as the angle they make when they are placed on the same plane. However, this is not exactly what I am looking for. That is only marginally useful, because this angle doesn't fully describe the difference in direction of two vectors in N-dimensional space.

In more than two dimensions, it would be perfectly valid to describe the difference in direction for two N-dimensional vectors in terms of another N-dimensional vector. One could simply subtract two vectors, and the result would describe the difference in direction.

But, is it valid to do things a bit differently?

First, lets observe that all angles are fundamentally describing the difference in direction between two vectors. Typically, a 2-dimensional angle describes the difference in direction between a given vector and the vector <1, 0>.

It should then be noted that the difference between N-dimensional vectors A and B could be expressed in terms of a vector that is orthogonal to A. In this case, the direction of the orthogonal vector would indicate the direction of the directional difference between our vectors A and B, and the magnitude of the orthogonal vector would indicate the size of the directional difference between our vectors A and B.

In which case... For our angle between N-dimensional vectors A and B, we now end up with a vector of dimensions N-1.

This is basically what is happening when we use "radians" or "degrees" for 2-dimensional angles. We are describing the difference between a pair of 2-dimensional vectors, and as it happens, this only takes 1 dimension to describe. The direction (positive or negative only, in this case) describes which direction around the circle we are travelling, and the magnitude describes how far.

We could do something similar in three dimensions. The directional difference between two 3-dimensional vectors C and D could be described in terms of a 2-dimensional vector. This two dimensional vector would exist on a plane orthogonal to vector C, indicating the direction one would need to turn to reach vector D. The magnitude of the vector would indicate how far one would need to travel (curved along a sphere, not in a straight line) to reach vector D.

It should be somewhat evident that this approach could be generalized to N-dimensions. Thus, the angle between two 4-dimensional vectors could be expressed as a 3-dimensional vector, et cetera.

This technique strikes me as useful. While it would be perfectly valid to describe the difference between two N-dimensional vectors as yet another N-dimensional vector (in two dimensions, we might say the difference in direction between <1, 1> and <2, 3> is <1, 2>)... This 2-dimensional vector contains some unnecessary data in it (specifically, a magnitude). Much more importantly... This simplification is extremely helpful in two dimensions. So can it be used in more than two? Would this give an efficient approach to calculations in 3-dimensions or N-dimensions?