Getting the plane of reflection of two direction vectors?

Suppose I have two 3D direction vectors, one vector leads to the other, how can I find the plane at which they reflect?

See this diagram: http://i.imgur.com/pLHbY.png Where the blue vector is what I’m trying to find, in other words the angle between the blue vector and green vector and blue vector and red vector is the same.

Remember that the angle of incidence is the angle of reflection.

So you have two vector’s A and B

Let’s call Vector C then vector that results after B reflects off A.

Voila! C is the Vector that you want.

Vector3 c = Vector3.Reflect(B, A);

That ~should~ do the trick.

The incidental (red) vector is reflected across that plane’s normal to give the reflected (green) vector. This would coincide with the bisecting vector of redVector and the opposite of greenVector, -greenVector. The bisecting vector is the weighted average of two vectors. So,

(redVector + -greenVector) / 2 = the normal for your reflecting plane

I think :wink: