Good day everyone.

I hope someone can help me with this problem, I've been stuck for a couple of days.

Heres my problem,

I'm trying to calculate the the orientation of an object in 3D space (yaw, tilt, pan), and express it as a three dimensional direction vector. <X,Y,Z>. I only have three known points on the object. And know that those points are orthogonal to each other. (See pictures below for visual aid.) I have Point R, Point B, and Point Y. (Respectively to the colors in the image. Red Blue and Yellow). Additionally, point V is the vertex, such that all points are perpendicular to each other.

By knowing points

B(x,y,z)

Y(x,y,z)

R(x,y,z)

The vertex can be calculated. (Using Thales Theorem with 3D spheres, and their common intersections.) Thus allowing me to calculate a vector from point B to the vertex, point V. Unfortunately, this calculation only get me 2/3rd of what I am trying to get.

Imagine that the vector BV represents the direction that the object is facing. (But not how much the object have rotated around that vector.) A crude example of this would be a human eye, or camera. The optical axis defines a direction vector analogous to the vector defined by point B and V in the image above. unfortunately, if I were to rotate this camera around the optical axis. Perhaps a full 180 degrees such that the camera is no upside down. This would effect the image.

So what I need help with is determining that amount of rotation, using the three points I mentioned above. If possible I would also like to express this direction and rotation, in a 3D direction vector.

I have done some research, and have only found how to rotate an object around a arbitrary vector, unfortunately, there is nothing about determining the rotation of a point(s) around a arbitrary vector.

If anyone could offer help, experience, knowledge or resources I would greatly appreciate it.

Thanks,

Taylor S. Amarel

Learning is living