As I'm sure you're all aware, the use of the F3 screen was removed in version 4.20 of Better than Wolves preventing the player from accessing the silly GPS co-ordinates. I realised very recently though that it would be possible to navigate anywhere using only the compass and a calculator. The method is fairly complicated and requires a good knowledge of trigonometry to understand, but I will try my best to explain:
The compass needle points at a fixed spot which I will define as the 'origin', (0, 0). I will also define two axes, 'y' and 'x' that increment in the directions 'north' and 'east' respectively. This system allows for any direction of 'north'. I find where the sun sets the most memorable since then both the sun and the moon are constantly travelling in a northerly direction.
I will now be able to walk anywhere in the world and find my position relative to the origin using this method:
The compass has twenty-five 'notches' which I assume to be 14.4 degrees (2pi/25 radians) each increment. You are going to find three variables in order to calculate your position. These variables I have named 'alpha', 'beta' and 'd' and are illustrated in the graph in the link below:
Open me!
[----360 / 0-----]
[------------------]
[-270--------90--] (Imagine this is your standard Minecraft compass)
[------------------]
[-------180------]
On the compass, take clockwise movement as positive where 0 / 360 degrees is at the top.
The angles on the graph are measured in an anti-clockwise fashion.
- Stand at a point 'A' facing 'north'. Line the compass up with the needle facing the top. Now turn around until you're facing north in the most direct way (clockwise or anti-clockwise), counting each notch along the way. Multiplying the number of notches counted by 14 will give you a the bearing of the origin from your current position.
- Work out which 'quadrant' of the graph you are in, that is whether you are NE, SE, SW or NW.. If you are in the first (upper-right) quadrant, the needle will be at 180-270 degrees when facing north. The second, (upper-left) 90-180. The third, (lower-left) 0-90. The fourth (lower-right) 270-360.
- Now find the angle 'alpha' (in degrees). This is straight-forward for the first quadrant, but for the others you will need to find the angle that meets the x axis and the line OA - this angle should be acute and positive. This may be a bit tricky first time.
- Decide which direction you are going to walk in order to take your next bearing. If you are in quadrants 1 or 2, you should walk directly north, otherwise you should walk directly south.
- Walk in the correct direction, compass in hand, counting each block as you move. Stop when the compass needle increments, this is the point 'B'. 'd' is the number of blocks you have travelled for the compass needle to move.
- Since the compass has moved by one notch, the angle beta should therefore be 14.4 degrees. For larger increments of 'n' notches: beta = 14.4n degrees
- Using the values of 'alpha', 'beta' and 'd', find your approximate position using the formulae:
x = [d.cos(alpha).cos{alpha + beta}] / sin(beta)
y = [d.cos(alpha).sin{alpha + beta}] / sin(beta)
The quadrant you are in determines whether x and y are positive or negative.
First quadrant: (+ve, +ve)
Second quadrant: (-ve, +ve)
Third quadrant: (-ve, -ve)
Fourth quadrant: (+ve, -ve)
Note that this is an approximation to the point B, not A. There are many sources of error in the calculation, largely due to the rounding of the vanilla compass. The amount of time it takes to reach an estimate will depend heavily on how far away you are from the origin, your patience and how close you are to the line x=0.
I am working on methods for calculating similar results when moving towards the origin and in the east-west direction.
Please feel free to ask any questions or criticise my experimentation (constructively!). I may do a tutorial as I can imagine this must be difficult to grasp with text alone.
Have fun exploring.
Derivation
Further Navigation:
Spoiler
Show
You can find an the angle between two points A (a, b) and B (c, d) using the formula: theta = arctan{(d - b) / (c - a)} (where arctan(x) is the inverse tangent function). Using north as your 0 / 360 degree mark, you can then approximate which direction to walk in. Finding the distance between A and B will also give you an idea how far you will have to walk for.
A more exact method requires finding the ratio (c - a) : (d - b). Just repeat to yourself: "for every (c - a) blocks east / west, move (d - b) blocks north / south" until you reach your destination (or go insane).
A more exact method requires finding the ratio (c - a) : (d - b). Just repeat to yourself: "for every (c - a) blocks east / west, move (d - b) blocks north / south" until you reach your destination (or go insane).
Spoiler
Show
Between a point 'B' and the origin: dist. = [d.cos(alpha)] / sin(beta)
Between two points 'A' (a, b) and 'B' (c, d): dist. = [ (d-b)^2 + (c-a)^2 ]^(0.5) - using Pythagoras' theorem
Between two points 'A' (a, b) and 'B' (c, d): dist. = [ (d-b)^2 + (c-a)^2 ]^(0.5) - using Pythagoras' theorem