# NavList:

## A Community Devoted to the Preservation and Practice of Celestial Navigation and Other Methods of Traditional Wayfinding

**Re: Triangulation without a chart.**

**From:**Jan van Puffelen

**Date:**1996 Oct 20, 12:45 +0200

At 16:09 19-10-96 PDT, you wrote:> I managed to find my way back ( on a moonless overcast night, thank >you very much ) with crude dead reckoning and a little luck. What I'm >wondering is, is there a formula that would have given me my position? >I'm thinking about just pencilling the landmarks in, but my skill as a >mathematicion is considerably greater than my skill as a cartographer, >so I thought I'd present this problem to the collective wisdom of the >group. Yes there are two solutions, one for two observed points and one for three. I have programmed these problems in BASIC for the small hand held calculator CASIO FX702P which could contain up to 10 of such programs. The first program is used to combine any two position lines (for instance two compass bearings of two known points): _____________________________________________________________________ Cross Bearing (Combination of any 2 position lines) _____________________________________________________________________ 1 INP "B3",E,"L3",F,"P3",P,"B4",G,"L4",H,"P4",Q 2 PRC 1,F-H normalize difference in longitude RPC X,Y RPC E-G,Y*COS ((G+E)/2) distance & course using avg latitude 3 Z=X*SIN ((Y-P)/SIN (P-Q) distance to 2nd point SET F1 PRT "VH4=";Z*60;"^" print that distance and prompt PRC -Z,Q compute position 4 A=G basis for position B=H 1 A=A+X Latitude of position PRC 1,B+Y/COS (A-X/2) normalize longitude RPC X,Y B=Y store longitude _____________________________________________________________________ The CASIO FX702P has 26 variables, A through Z. The variables used in this program are given in the 1st column. Externally (using the display) these variables are referred to by the names in the second column. An explanation of the contents is found in the 3rd column: _________________________________________________ Var Display contains _________________________________________________ A Latitude of calculated position B Longitude of calculated position E B3 Latitude of 1st position line F L3 Longitude of 1st position line G B4 Latitude of 2nd position line H L4 Longitude of 2nd position line P P3 Bearing of 1st position line Q P4 Bearing of 2nd position line X Y Z Distance to 2nd point in NM/60 _________________________________________________ The conversation via the display: ________________________________________________________________ Display/Accept Description ________________________________________________________________ B3 Latitude of 1st position line L3 Longitude of 1st position line P3 Bearing of 1st position line B4 Latitude of 2nd position line L4 Longitude of 2nd position line P4 Bearing of 2nd position line VH4= m.m Distance from calculated position to B4/L4 (2nd position) ^ Prompt, CONT updates position ________________________________________________________________ However, if THREE points are visible A VERY ACCURATE position can be calculated by measuring the angles (clockwise) between the first and the second point (A and B) and the second and the third point (B and C) with a sextant. This calculated position is not influenced by deviation and variation of the compass and, again, since the angles are measured with a precision of 0.1' or so extremely accurate! This method was invented by a Dutch 16th century mathematician, Snellius. The program can work in two ways: 1. Entering the lat/long of the three points (answer Y) 2. Entering the distance between A and B, C and D and the subtended angle between AB and BC (answer N) _________________________________________________________________________ SNELLIUS _________________________________________________________________________ 1 INP "POS Y/N',$ Input positions IF $="N"; If not then INP "AB",R,"BC",T,"ABC",K GOTO 6 2 GSB 13 enter lat/long of point A GSB 14 enter lat/long of point B + compute INP "BC',I,"LC",J enter lat/long of point C PRC 1,J-H normalize difference in long RPC X,Y 3 RPC I-G,Y*COS((I+G)/2) distance and course from B to C T=60*X in nautical miles GSB 16 normalize course U=Y and store course from B to C 4 Y=S+180-U enclosed angle B GSB 16 normalize X=Y Y=180-S+U 2nd possibility GSB 16 normalize 5 SET F0 no decimals PRT "ABC=";X;Y; display both possibilities INP " 0/1",Z and make a choice K=X in case 0 IF K=1; K=Y in case 1 6 INP "ADB",P,"BDC",Q enter measured angles M=180-(K+P+Q)/2 =beta=(X+Y)/2 N=ATN(R*SIN Q/T/SIN P) =phi 7 IF ABS(ABS M-90)<2; angle between tangents less than 4 degrees PRT "<4" display error message END and stop 8 O=ATN (TAN (45-N)*TAN M)%=gamma=(X-Y)/2 V=M+O angle X W=M-O angle Y Z=R*SIN (P+V)/SIN P distance AD 9 SET F1 display to 1 decimal PRT "AD=";ABS Z;"BD=";ABS (R*SIN V/SIN P) 10 PRT "CD=";ABS (T*SIN (Q+W)/SIN Q) IF $<>"N" THEN 12 11 GSB 13 enter lat/long of A INP "NAB",S enter course from A to B IF S=0; if nothing was entered GSB 14 enter lat/long of B + compute 12 PRC Z/60,S+V distance and course from A to D A=E+X latitude of D PRC 1,F+Y/COS (A-X/2) normalize computed long RPC X,Y B=Y long of D END 13 INP "BA",E,"LA",F RET 14 INP "BB",G,"LB",H lat/long of B PRC 1,H-F normalize differende of long RPC X,Y from A to B RPC G-E,Y*COS((G+E)/2) distance and course 15 GSB 16 normalize course R=60*X in nautical miles S=Y RET 16 Y=Y-360*INT (Y/360) normalize Y RET _________________________________________________________________________ The list of used variables: ____________________________________________ Var Display Contains ____________________________________________ $ string variable A Lat of calculated position B Long of calculated position E BA Lat of A F LA Long of A G BB Lat of B H LB Long of B I BC Lat of C J LC Long of C K ABC enclosed angle ABC M N O P ADB measured sextant angle P Q BDC measured sextant angle Q R AB distance from A to B in NM S NAB bearing from A to B T BC distance from B to C in NM U bearing from B to C V angle X W angle Y X Y Z ____________________________________________ And the conversation via the display: __________________________________________________________ Display Meaning __________________________________________________________ POS Y/N Do you want to enter positions for A, B and C Y/N? AB Distance from A to B in NM (in case of N) BC Distance from B to C in NM (in case of N) ABC Enclosed angle (in case of N) BA Lat of A (in case of Y) LA Long of A (in case of Y) BB Lat of B (in case of Y) LB Long of B (in case of Y) BC Lat of C (in case of Y) LC Long of C (in case of Y) ABC=x y 0/1 Decide which of the enclosed angles is right ADB Enter observed sextant angle P (ADB) BDC Enter observed sextant angle Q (BDC) AD=m.m Distance from A to D in NM BD=m.m Distance from B to D in NM CD=m.m Distance from C to D in NM NAB Bearing from A to B enter 0 to calculate __________________________________________________________ Most of the BASIC commands are self explanatory. All angles are standard in degrees (not radians) The CASIO has some very useful commands to translate polar to rectangular coordinates (PRC) and rectangular to polar coordinates (RPC). These two commands are defined as follows: PRC a, b = Polar to Rectangular Coordinates: X=aCOSb, Y=aSINb (a and b are expressions) RPC a, b = Rectangular to Polar Coordinates: Y=ATAN2(a,b), X=SQRT(SQR(a)+SQR(b)) SET F n = Set display to fixed point, n decimals DMS a = display a in format dd.mmss, i.e. 3.5 = 3d 30' 00.00" > > Thanks, > Justin Wilmsmeyer > justin{at}qdeck.com > Regards, Jan van Puffelen 52d 24'5N 4d 55'0E