Finding a shorter form for coplanar point in 3D space

• To: mathgroup at smc.vnet.net
• Subject: [mg65135] Finding a shorter form for coplanar point in 3D space
• From: János <janos.lobb at yale.edu>
• Date: Wed, 15 Mar 2006 06:29:38 -0500 (EST)
• Sender: owner-wri-mathgroup at wolfram.com

```Hi,

Let say I have a Line in 3D with points A(xa,ya,0) and B(xb,yb,zb)
and the distance between the two points in space is "l"  -small "L".
Then I move this line into another position where the end points will
be C(xc,yc,0) and D(xd,yd,zd).  The move is such that A,B and D are
collinear, A and C remain in the xy-plane and A,B,C and D are
coplanar.   The distance between C and D are also "l".  Let's say I
know the coordinates of  A, B, and C and I am looking for D(xd,yd,zd).

From the condition of collinearity of A,B,C is coming that the
determinant of the matrix created from the coordinates has to vanish
so my first equation eqn1:

In[1]:=
m = {{xa, ya, 0}, {xb, yb,
zb}, {xd, yd, zd}}

In[2]:=
eqn1 = Det[m] == 0
Out[2]=
xd*ya*zb - xa*yd*zb -
xb*ya*zd + xa*yb*zd == 0

The second equation is coming from the fact that the distance between
C and D is "l":

In[11]:=
eqn2 = (xc - xd)^2 +
(yc - yd)^2 + zd^2 == l^2

The third equation is given by similar triangles.  Let say if the
vertical projection of D down to the xy-plane is Dxy and the same for
B is Bxy, then BBxy:BxyA == DDxy:DxyA.  In coordinates:

eqn3 = zb/Sqrt[(xa - xb)^2 +
(ya - yb)^2] ==
zd/Sqrt[(xa - xd)^2 +
(ya - yd)^2]

Well, if I put all three into Solve, like this innocent looking
sol=Solve[{eqn1,eqn2,eqn3},{xd,yd,zd}], Solve will take my G5 duo
into the bushes forever.  It looks to me that I should have up to max
16 solutions for {xd,yd,zd}.

If I try to be cleaver and solve eqn3 for zd:

In[22]:=
solzd = Solve[eqn3, zd]
Out[22]=
{{zd -> (Sqrt[(xa - xd)^2 +
(ya - yd)^2]*zb)/
Sqrt[(xa - xb)^2 +
(ya - yb)^2]}}

and punch it back to eqn1 and eqn2 then I get

In[8]:=
eqn1
Out[8]=
xd*ya*zb -
(xb*ya*Sqrt[(xa - xd)^2 +
(ya - yd)^2]*zb)/
Sqrt[(xa - xb)^2 +
(ya - yb)^2] +
(xa*yb*Sqrt[(xa - xd)^2 +
(ya - yd)^2]*zb)/
Sqrt[(xa - xb)^2 +
(ya - yb)^2] -
xa*yd*zb == 0

and

In[13]:=
eqn2
Out[13]=
(xc - xd)^2 + (yc - yd)^2 +
(((xa - xd)^2 + (ya - yd)^
2)*zb^2)/
((xa - xb)^2 + (ya - yb)^
2) == l^2

Now these two still take my G5 Duo to the laundry if I try Solve
[{eqn1,eqn2},{xd,yd}].
The next step to do is to solve eqn1 for yd:

In[22]:=
solyd = Flatten[Solve[eqn1,
yd]]
Out[22]=
{yd -> ((-xb)*ya + xd*ya +
xa*yb - xd*yb)/
(xa - xb), yd ->
(xa^2*xb*ya + xa^2*xd*ya -
2*xa*xb*xd*ya +
xb*ya^3 + xd*ya^3 -
xa^3*yb + xa^2*xd*yb -
xa*ya^2*yb - xd*ya^2*yb)/
(xa^3 - xa^2*xb +
xa*ya^2 + xb*ya^2 -
2*xa*ya*yb)}

and punch it back to eqn2.  Eqn2 will become two equations, eqn21 and
eqn22.

In[28]:=
eqn21 = eqn2 /. yd ->
solyd[[1,2]]
Out[28]=
(xc - xd)^2 +
(-(((-xb)*ya + xd*ya +
xa*yb - xd*yb)/
(xa - xb)) + yc)^2 +
(((xa - xd)^2 +
(ya - ((-xb)*ya +
xd*ya + xa*yb -
xd*yb)/(xa - xb))^
2)*zb^2)/
((xa - xb)^2 + (ya - yb)^
2) == l^2

and

In[33]:=
eqn22 = eqn2 /. yd ->
solyd[[2,2]]
Out[33]=
(xc - xd)^2 +
(-((xa^2*xb*ya + xa^2*xd*
ya - 2*xa*xb*xd*ya +
xb*ya^3 + xd*ya^3 -
xa^3*yb + xa^2*xd*
yb - xa*ya^2*yb -
xd*ya^2*yb)/(xa^3 -
xa^2*xb + xa*ya^2 +
xb*ya^2 - 2*xa*ya*
yb)) + yc)^2 +
(((xa - xd)^2 +
(ya - (xa^2*xb*ya +
xa^2*xd*ya -
2*xa*xb*xd*ya +
xb*ya^3 + xd*ya^3 -
xa^3*yb + xa^2*xd*
yb - xa*ya^2*yb -
xd*ya^2*yb)/
(xa^3 - xa^2*xb +
xa*ya^2 + xb*ya^2 -
2*xa*ya*yb))^2)*
zb^2)/((xa - xb)^2 +
(ya - yb)^2) == l^2

Solving these two is now a breeze for the G5 duo and both give two
solutions.  The third and fourth solutions for xd are quite a few
pages long.

I am wondering if there is another way - like using cylindrical
coordinate system or using Reduce - to get shorter looking
solutions.  Does Solve do a FullSimplify on its findings ?

János

----------------------------------------------
Trying to argue with a politician is like lifting up the head of a
corpse.
(S. Lem: His Master Voice)

```

• Prev by Date: Re: Total Derivative and Output Display Question
• Next by Date: RE: Re: Re: Mathematica and Education
• Previous by thread: Re: Question: DiracDelta simplifies/integrates incorrectly?
• Next by thread: Re: Finding a shorter form for coplanar point in 3D space