Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

A problem changing coordinates

5 views
Skip to first unread message

Nicole Bouchez

unread,
Dec 11, 1998, 3:00:00 AM12/11/98
to
I have some data which is described in three dimensional space (x,y,z)
however, the data is all constrained to be in the x+y+z=1 plane so I
would like to figure out how to find the transformation is so that I am
just dealing with two dimensions. I really do not mind where the origin
end up as I can adjust that later.

To state this differently, I am looking for the 3 by 3 matrix M so that
[x y x] M = [u v 0] where u and v are the coordinates in the x+y+z=1
plane.

If anyone could give me some pointers of how to do this I would be very
grateful. I have spent some time going over books in our library but
have not found anything directly relevant. So far all I have to go on
are some vague memories of math classes too long ago and they have
proved incorrect.

Horst Kraemer

unread,
Dec 14, 1998, 3:00:00 AM12/14/98
to


A normal vector to your plane is N = (1,1,1). This is the direction of
the future z-coordinate of the transformed system which will be 0 for
every point of the plane x+y+z=1. Now you have to find two unit
vectors vectors U0,V0 in the plane such that U0 and V0 are
perpendicular.

A vector U in the plane could be U = (-1,1,0) because <U,N> = 0.

The second vector V of the local coordinate system will be V=NxU =

1 -1 -1
1 x 1 = -1
1 0 2

V is perpendicular to U and to N, hence it will be in the plane, too.


This yields U0 = (-1/sqrt(2),1/sqrt(2),0)
V0 = (-1/sqrt(6).-1/sqrt(6),2/sqrt(6))


Now the task is to rewrite every point of the form (x,y,z),x,y,z=1 as

for example (x,y,z) = (1/3,1/3,1/3) + u*U0 + v*V0

then u,v are the local coordinates of x in the U0 V0 system with
origin (1/3,1/3,1/3)

This will be performed by solving

u = <(x-1/3,y-1/3,z-1/3),U0>
v = <(x-1/3,y-1/3,z-1/3),V0>

Regards
Horst


David Ziskind

unread,
Dec 17, 1998, 3:00:00 AM12/17/98
to
Nicole Bouchez <bou...@cats.ucsc.edu> wrote in article
<3671BD...@cats.ucsc.edu> regarding a change of coordinates problem.
Taking this problem and placing it in a more general "solid body motion"
setting (and generalizing on the data), we have:

Find a solid body transformation T with the property that for all x, if
x*a=k then (T(x))_3 = 0.

x, a, and T(x) are 3 vectors. k is a scalar. _3 denotes the 3rd component
of the vector to the left. * denotes scalar or vector inner-product
multiplication, depending on the multiplicands. X denotes the vector
cross-product operation. |a| =def (a*a)^(1/2).

One such T is given by the following formulae. The complete formulation is
given here as a sequence of calculations so as to avoid an excessively
complex formula -- which would be particularly hard to read in the present
medium.

In applying the formula, it should be noted that a=(a_1,a_2,a_3), and k
determine a "problem". (In the base post, a was (1,1,1) and k was 1).)
After a particular problem is determined, there remains the calculation for
one or more data, ie, one or more values of x. In giving the calculation,
therefore, we make a distinction as to: computation which should be
performed once per problem, versus computation that should be performed
once per datum.

THE COMPUTATION OF T(x)

Once per problem...

1. (read g as new oriGin, a 3 vector)
g = a*k/(|a|^2)

2. (read n as "cosiNe theta" = cosine of the rotation angle)
n = a_3/|a|

3. (read c as direction Cosines of the rotation axis)
c = (a_2,-a_1,0) / [(a_1)^2 + (a^2)^2)]^(1/2)

Once per datum...

4. s = x - g

5. r = T(x) = n*s + (1-n)*(s*c)*c + [(1-n^2)^(1/2)]*(c X s)

In (5), * in s*c is inner-product, the other *'s are scalar
multiplication.

COMMENTS

In carrying out the practical computation of r, the value of r_3 (which
should be 0) should be computed for each datum, both to guard against
blunders, and to ensure that data that is supposed to obey x*a=k does in
fact do so. This calculation, performed for the general case, provides
much of the proof that T actually does solve the problem.

A number of questions are left unanswered:
-how do we know that T as given above is in fact a solid-body motion?
-how is the overall formula derived in the first place, and are there any
other transformations that would solve the problem?

A complete discussion would be fairly lengthy, so I will limit this to just
a few comments:

1. For a general derivation of solid body motion, see a text such as:
Robertson and Noonan, "Relativity and Cosmology", Saunders, 1968 (Section
1.5).
2. For reference purposes, the formula for "rotation about a given axis" is
given in: Korn and Korn, "Mathematical Handbook for Scientists and
Engineers", 2nd Edition, McGraw Hill, 1967, ISBN 0070353700 (Section
14.10-2).
3. The formula for T can be derived by letting g be any convenient point
also in the specified plane and then decomposing x-g into components
parallel to, and perpendicular to, the rotation axis (l and p
respectively). R, a pure rotation, is to be determined. Rl=l and we seek
Rp. (The sum of the two rotated objects is R(l+p), by linearity of R.) p
can be crossed with unitized-l (=c) forming a third vector, pXc, and thus a
trihedral system. The span of pXc and p forms the "rotation plane". Both
Rp and Rp-p lie in the rotation plane and so can be resolved into
components along pXc and p. Also, the geometry provides two independent
relations which involve Rp and p. The two relations incorporate just two
unknowns (the measure numbers for Rp-p) so the system is solvable. Once
the measure numbers for Rp-p are computed, Rp is determinable and, with Rl,
gives R(l+p)=R(x-g)=Tx, as desired.

David Ziskind
zis...@ntplx.net


0 new messages