Let's say I have a 3D model that represents a small real-world space; it could be bounded by a 10" by 10" by 10" box. I know the real-world compass bearing for an observer in the center of the box looking down the X axis. How can I estimate the bearings of other vectors in this space?
So there are an infinite number of vectors that satisfy this. Here are 3 ways to find some solutions:
Use the swap and negate method similar to that from 2D. Given a vector $(x, y, z)$ orthogonal vectors are $(-y, x, 0)$, or $(-z, 0, x)$ or $(0, -z, y)$ ie set 1 component to zero then swap the other two and negate one of them(usually the first).
Solve for the dot product. The dot product of two orthogonal vectors would be equal to zero. So just pick two values and solve for third. ie given a vector $(1,2,3)$ the dot product of an orthogonal vector would be $1x+2y+3z=0$. Use some method to pick $x,y$, or just pick them randomly, and solve for $z$. This is nice if you have just a little extra info but not all of it.
Similar to number 2. Solve the cross product for a vector that is orthogonal.
Oh...I guess it goes without saying since I forgot to say it... The last vector is the cross product of the compass heading, and the "made up" vector.