# NavList:

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

Message:αβγ
Message:abc
 Add Images & Files Posting Code: Name: Email:
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)
________________________________________________________________

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
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
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@qdeck.com
>

Regards,
Jan van Puffelen
52d 24'5N
4d 55'0E

```
Browse Files

Drop Files

### Join NavList

 Name: (please, no nicknames or handles) Email:
 Do you want to receive all group messages by email? Yes No
You can also join by posting. Your first on-topic post automatically makes you a member.

### Posting Code

Enter the email address associated with your NavList messages. Your posting code will be emailed to you immediately.
 Email:

### Email Settings

 Posting Code:

### Custom Index

 Subject: Author: Start date: (yyyymm dd) End date: (yyyymm dd)