[Math] Find a Vector at a given angle from another Vector and a Normal

trigonometryvectors

I have two unit vectors, say N and R which are perpendicular to each other. I want to find a third vector V which is also perpendicular to N but is rotated around it by a specified angle relative to R. I'm not sure how to work this out?

To help explain what I am doing: assume we have a perfectly spherical planet that is perfectly smooth (no geographical features). At a specified lat,long, I have a specified wind direction. 0° is a wind that blows due North, 90° blows due West, etc.

From these assumptions I can work out N (normal to the wind direction and normal to the ground) and R (in the plane that is tangent to the surface but facing due North).

How can I calculate V from these two vectors (in the same plane as R such that the angle from R to V is theta)? Or is there is an easier way to calculate this unit vector given latitude, longitude and wind direction? I want an answer in 3D space.

Best Answer

Since $N$ and $V$ are penpendicular, we need

$$\langle n, v \rangle =0$$

Since $R$ and $V$ form an angle $\theta$.

$$\langle r, v \rangle = \cos \theta$$

We then solve the linear system to recover $v$.

Alternatively, use cross product to find unit vector $p$ that is perpendicular to both $n$ and $r$.

$$v = (\cos \theta) r \pm (\sin \theta) p$$

Related Question