Find reflex angle with 3 points and their plane normal

anglegeometry

I have 3 points in 3D and I want to calculate $ABC$ angle, which could be reflex angle. I also know the normal of the plane they are in. Is there a way to calculate the angle?

EDIT:

Take a look at this picture. The two vectors create two angles one would be $a$ and the other $360 – a$. Now I also know the direction of normal between the two vectors. With that information how can I determine if they construct angle $a$ or $360-a$.

Best Answer

You can use scalar product $$ \langle \mathbf{u},\mathbf{v}\rangle = \lVert \mathbf{u}\rVert \lVert \mathbf{v}\rVert \cos\alpha $$ where $\alpha$ is the angle between $\mathbf{u}$ and $\mathbf{v}$.

Hence $$ \alpha=\arccos \frac{\langle \mathbf{u},\mathbf{v}\rangle}{\lVert \mathbf{u}\rVert \lVert \mathbf{v}\rVert} $$

In your case \begin{align} \mathbf{u}=A-B\\ \mathbf{v}=C-B \end{align}

Notice that you'll get $\alpha\le180°$.