I have 2 vectors in 3d space, v1 and v2. I also have a vector representing as it happens the direction of the earth's magnetic field, called h. i believe that v1 and v2 are related in that v2 is some rotation around h of v1. i would like to find that angle of rotation. i can't just find the shortest arc (by using the dot and cross products for eg), as this will not be around h in general. To make matters worse, v1 and v2 wont necessarily be exactly on the same circle of rotation: just approximately on it. So really i'd like to find the angle of rotation around h that transforms v1 into v1', where v1' is the nearest point on that circle of rotation to v2, and THEN also find the length of the vector (gap) between v1' and v2. Any ideas?