Sign in to follow this  

Finding a unit vector orthogonal to another vector, on a plane

Recommended Posts

pondwater    191

I have a vector A, and I have a plane P consisting of a point (Pp) and normal (Pn)


I need to find the vector B, that is orthogonal to A and also on P.  To prevent infinite solutions, lets make B unit length.


If V is perpendicular to P there are infinite, we can ignore this case, as in my application it will never occur.


As far as I can see in every other case there will be two vectors.


We have 3 unknowns and therefore need three equations:


1) A and B are orthogonal, therefore their dot product is zero


    (A.x * B.x) + (A.y * B.y) + (A.z * B.z) = 0


2) If B is in the plane P, then there are orthogonal and the dot product between B and Pn is zero


    (B.x * Pn.x) + (B.y * Pn.y) + (B.z * Pn.z) = 0


3) B will be unit length


    sqrt(B.x^2 + B.y^2 + B.z^2) = 1


Now I assume I could plug these into a fancy equation solver and find vector B (and its negation), butI was hoping there is a more specific / optimized approach.


Any ideas?



Share this post

Link to post
Share on other sites
apatriarca    2365

You can simply do a cross product of the vector A with the plane normal and then normalize/negate as required.

Edited by apatriarca

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this