points in space
root at power7200.ping.be
Fri Jan 17 03:08:29 EST 1997
In article <c07craig-ya023180001001971216460001 at news.csus.edu>,
c07craig at sfsu.edu (c weiser) writes:
>Suppose we know vector PQ which is in a plane in space. We also know angle
>theta, which is the angle between PQ and PR. PR is also in the same plane
>as PQ, and the unit length of PQ is the same as PR. So, given all this,
>how do we find vector PR?
>In other words, how do we solve for point R in three dimensional space?
>Another way to put it is how can one use a polar coordinate system that is
>in an arbitrary plane in space?
>please email me at c07craig at sfsu.edu (zero between c and 7)
It depends a bit on how you get your plane defined, but I'd say the
simplest thing to do is to use an orthogonal transformation that
reduces your vector PQ to the OX axis, and the perpendicular direction
to the plane to the OZ axis.
So, if PQ is given by (a,b,c) in the Oxyz system, and the plane
is perpendicular to (d,e,f) (because the plane has as eq. dx + ey + fz = 0)
(and let us assume that both vectors are normalized to 1)
then we have to think up a transformation Oxyz --> OXYZ
that maps (a,b,c) onto (1,0,0) and maps (d,e,f) onto (0,0,1).
Assuming PQ is part of the plane, we have to have ad + be + cf = 0
(otherwise something is wrong).
Finding the 3rd axis is easy in this case, just take the cross product
of (a,b,c) and (d,e,f). That will give you a vector (g,h,i). At least
if you apply a minus sign.
Now define a matrix A = [ [a,b,c], [g,h,i], [d,e,f] ]
Define B = transpose of A.
Clearly, B. [ 1, 0, 0 ]T = [a, b, c]T
B. [0, 1, 0 ] T= [g,h,i]
B. [0, 0, 1 ] T = [d, e, f]
So, B is the inverse operator of the one we wanted, hence
the sought-for transformation is inverse(B).
Hope this helps, and please check it, I might have made some transposition
More information about the Comp-bio