We have two known points, A and B, that lie on the plane.
Point C is known, and lies a known distance D in front of the plane.
What is the plane equation?
A plane problem
There are infinitely many, independant solutions to your problem.
it's easy to see this visually, if not consider:
choose 'any' unit vector 'n' for the plane normal, then the plane formed by the 3 points A, B, C - Dn is a solution to your problem.
it's easy to see this visually, if not consider:
choose 'any' unit vector 'n' for the plane normal, then the plane formed by the 3 points A, B, C - Dn is a solution to your problem.
I think it's unambiguous, but I might have left something out in my description. Ah, you just "got" it and deleted your response!
I think it's unambiguous, but I might have left something out in my description. Ah, you just "got" it and deleted your response!
I don't think there is enough information there to get the plane normal; you've only got one vector on the plane and a distance which is known to be in the direction of the normal?
Cheers, Paul.
wolfram alpha gives us a ... very long solution!
clearly the unit - normal of the plane you want is such that:
A dot n = B dot n = C dot n - D
or to have less variables:
(C-A) dot n = (C-B) dot n = D
in the wolfram alpha query, i have that (a,b,c) = C-A, and (A,B,C) = C-B, with (x,y,z) being our normal for the plane.
the result... is horrible (though there are many many common terms that could be extracted to shorten the solutions)
The 2 solutions
clearly the unit - normal of the plane you want is such that:
A dot n = B dot n = C dot n - D
or to have less variables:
(C-A) dot n = (C-B) dot n = D
in the wolfram alpha query, i have that (a,b,c) = C-A, and (A,B,C) = C-B, with (x,y,z) being our normal for the plane.
the result... is horrible (though there are many many common terms that could be extracted to shorten the solutions)
The 2 solutions
I have to run to work so don't have the full derivation. However, assume a point E is the point in the plane that's distance D from C. I assume that your description of C means the vector E-C is perpendicular to the plane.
Form the plane normal N = Normalize( (E-A)cross(E-B) ). N will be in terms of unknowns E[sub]x[/sub], E[sub]y[/sub], E[sub]z[/sub].
E-C = D*N (i.e, length of E-C = D)
E[sub]x[/sub] - C[sub]x[/sub] = D*N[sub]x[/sub]
E[sub]y[/sub] - C[sub]y[/sub] = D*N[sub]y[/sub]
E[sub]z[/sub] - C[sub]z[/sub] = D*N[sub]z
[/sub]3 equations with 3 unknowns.
EDIT: Actually, you do have to specify that the points A and B, and the point in the plane nearest point C, are not colinear in the plane.
Form the plane normal N = Normalize( (E-A)cross(E-B) ). N will be in terms of unknowns E[sub]x[/sub], E[sub]y[/sub], E[sub]z[/sub].
E-C = D*N (i.e, length of E-C = D)
E[sub]x[/sub] - C[sub]x[/sub] = D*N[sub]x[/sub]
E[sub]y[/sub] - C[sub]y[/sub] = D*N[sub]y[/sub]
E[sub]z[/sub] - C[sub]z[/sub] = D*N[sub]z
[/sub]3 equations with 3 unknowns.
EDIT: Actually, you do have to specify that the points A and B, and the point in the plane nearest point C, are not colinear in the plane.
If I can describe arbitrary cases like this with four fingers, the math must be there.
Oh well.
Oh well.
the wolfram alpha query can be made a bit more manageable by not enforcing a unit normal (can do that as a post-step anyways)
in which case you get the (still very long, but clearly simpler) solution sets:
2 Solution sets
the only potential issue is that you need to choose the z-coordinate for the normal, so in corner cases you might require z to be zero, and others non-zero to get a solution.
in which case you get the (still very long, but clearly simpler) solution sets:
2 Solution sets
the only potential issue is that you need to choose the z-coordinate for the normal, so in corner cases you might require z to be zero, and others non-zero to get a solution.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement