What I need is a signed angle of rotation between two vectors Va and Vb lying within the same 3D plane and having the same origin knowing that:
- The plane contatining both vectors is an arbitrary and is not parallel to XY or any other of cardinal planes
- Vn - is a plane normal
- Both vectors along with the normal have the same origin O = { 0, 0, 0 }
- Va - is a reference for measuring the left handed rotation at Vn
The angle should be measured in such a way so if the plane would be XY plane the Va would stand for X axis unit vector of it.
I guess I should perform a kind of coordinate space transformation by using the Va as the X-axis and the cross product of Vb and Vn as the Y-axis and then just using some 2d method like with atan2() or something. Any ideas? Formulas?
(|Va||Vb|)
for thesin
andcos
. The wayatan2
works the denominators cancel out. – John Alexiou