Help with vector math and angles

For reasons unknown, I need to find the signed angle between two vectors which are on the same plane. This is proving difficult for me.

Here’s images to explain:

Now, how do I get the signed angle from the red arrow to the green one?

The plane is imaginary and the vectors are in world space.

Try this method

public static float AngleSigned(Vector3 v1, Vector3 v2, Vector3 normal)
{
    return Mathf.Atan2(Vector3.Dot(normal, Vector3.Cross(v1, v2)), Vector3.Dot(v1, v2)) * Mathf.Rad2Deg;
}

“Vector3 normal” is a plane normal

1 Like

Seems to work great, thanks a lot for the help! :slight_smile:

Hello, I’m using this formula and it works for me too, but I need to understand why it works! Can someone explain it to me?