[Date Index]
[Thread Index]
[Author Index]
Re: Triangulation Problem
*To*: mathgroup at smc.vnet.net
*Subject*: [mg2999] Re: [mg2968] Triangulation Problem
*From*: penny at edu-suu-scf.sc.suu.edu (Des Penny)
*Date*: Fri, 19 Jan 1996 02:28:17 -0500
>I am looking for the trigonometric / algebreic formulae one would use
>to triangulate an unknown position, knowing 3 fixed points and the
>respective distances to the unknown point. (make sence?)
>Oh - in 3 dimensional space.
>
>And actually, the reverse operations would be handy too...ie: given a
>known central point, AND 3 other fixed points, how to find the lengths
>of the lines required to meet at that first point, in 3D.
>
Hi David:
I started tinkering about with your problem. I wasn't able to come up with
a solution but the following ideas might help.
I tried two approaches:
******************************************************************
Method 1:
---------
a={a1,a2,a3};b={b1,b2,b3};c={c1,c2,c3};
p={x,y,z};
(* points a,b,c are given. p is desired *)
(* We define the following function which gives the magnitude of any vector *)
magnitude[a_List] := Sqrt[a.a]
(* now the distance between two points whose position vectors are
a={a1,a2,a3} and p={x,y,z} are *)
In: magnitude[p-a]
Out: Sqrt[(-a1 + x)^2 + (-a2 + y)^2 + (-a3 + z)^2]
(* which of course is the standard Cartesian formula for the distance
between two points in 3D.
We now set up our equations for the given distances between p and a, b, c.
Note that da is given and represents the square of the given distance to a.
*)
e1= magnitude[p-a]^2==da;
e2= magnitude[p-b]^2==db;
e3= magnitude[p-c]^2==dc;
(* We then solve these for the unknowns x,y and z: *)
In: NSolve[{e1,e2,e3},{x,y,z}]
Out: {{x -> 0.33*(a1 + b1 + c1), y -> 0.33*(a2 + b2 + c2), z -> 0.33*(a3 +
b3 + c3)}}
Discussion:
This should yield the result but clearly it does not since it does not
contain the given values of da, db and dc. It's interesting to note that
the answer given is the centroid of the triangle abc.
Note that Solve hangs up here.
******************************************************************
Method 2:
---------
I tried finding the minimum the following function:
f= (magnitude[p-a]^2 - da) + (magnitude[p-b]^2-db) + (magnitude[p-c]^2-dc)
Clearly the minimum should be at the point where
magnitude[p-a]^2 == da etc. The minimum value of f should be 0.
Here is the code:
f=magnitude[p-a]^2 - da + magnitude[p-b]^2-db + magnitude[p-c]^2-dc;
e1= D[f,x]==0;
e2= D[f,y]==0;
e3= D[f,z]==0;
Solve[{e1,e2,e3},{x,y,z}]
Out: {{x -> (a1 + b1 + c1)/3, y -> (a2 + b2 + c2)/3, z -> (a3 + b3 + c3)/3}}
Discussion:
This gives the same result as Method 1. Again there is no mention of da,
db and dc. Of course, the partial derivatives remove these constant
values.
Of course in general what we are talking about is the intersection of three
spheres centered at a, b, and c. The intersection of the first two spheres
usually gives a circle. The intersection of the last sphere with the
circle usually gives two points. However, it could also give one point or
an infinite number of points.
******************************************************************
>And actually, the reverse operations would be handy too...ie: given a
>known central point, AND 3 other fixed points, how to find the lengths
>of the lines required to meet at that first point, in 3D.
The answer to this question is straightforward. The lengths of the lines
are just the distances:
magnitude[p-a]
magnitude[p-b]
magnitude[p-c]
Does anyone have ideas as to why these methods don't yield our result?
Cheers,
Des Penny
==========================
Des Penny
Physical Science Dept.
Southern Utah University
Cedar City, UT 84720
VOICE: (Office): (801) 586-7708
(Home) : (801) 586-2286
FAX: (801) 865-8051
e-mail: penny at suu.edu
==========================
==== [MESSAGE SEPARATOR] ====
Prev by Date:
**Re: Simplifying=> Sqrt[Meter^2/Second^2]**
Next by Date:
**Re: Setting parts of matrices**
Previous by thread:
**Re: Triangulation Problem**
Next by thread:
**Re: Triangulation Problem**
| |