how two perpendicular vectors can have a dot product not equal to 0 in Unity?
Thats my script for a simple Cube, that moves only in 2D:
Now for example In my on screen display I see values as:
angle == 0,9852035
impact_direction == 0.1, 1.0, 0.0
reflect_direction == -0.1, 1.0, 0.0
How on earth is the dot product close to 1 !?!?!?!
Also what worries me is the fact, that for this example, the ship was flaying with big velocity in the OX axis and the impact_direction shows, that the OY value is bigger ?!?
asked Nov 11 '10 at 04:50 PM
Well, those vectors are not perpendicular, they are reflected along the X axis.
And their dot product is:
(-0.1*0.1)+(1.0*1.0)+(0.0*0.0) = (-0.01)+(1.0) = 0.99
So to get the angle, you'd have to divide the dot product by the product of the magnitudes of the two vectors. Ex:
Edit: Woops, don't forget to take arc-cosine of the above result to get the angle!
Or, you can just use the Vector3::Angle function: