Angles

This article is a continuation of Mouse Movement, with a focus on how trigonometry works in Minecraft.

The player's yaw is a float that keeps track of the player's horizontal rotation (in degrees). It is unbounded.

The player's facing is the restriction of the yaw to [-180°, 180°], as shown in F3.

A significant angle, or simply angle is an integer (from $0$ to $2^{16}-1$ ).

Significant Angles
Minecraft relies on significant angles for its trigonometry, which means the player's yaw has to be converted to an angle.

This conversion induces imprecision: a significant angle spans across ~$$0.0055°$$).

Sin and Cos source code (from MathHelper): Note:   gives the (positive) remainder of a division by 65536 ( $$2^{16}$$)

To convert the player's yaw into radians (when calling sin and cos), the game uses two formulas: Both have the same intent, but for large values the result may be different.

In that case, sprintjumping moves the player slightly to the side, which may be useful for no-turn strats.

Half Angles
and  should be 16384 units apart (90°), but because of floating point imprecision, some values could end up 1 or more units further, causing a slight shift from the intended calculation.

Half angles are such values, and can be found "between" consecutive angles (hence the name).

The existence of half angles is entirely due to the fact the term "+ 16384" is inside the parentheses.

Half angles don't have much use outside of Tool-Assisted Parkour: their effect on jump distance is small, and they are hardly usable with real-time mouse movement.

Each half-angle has an associated Multiplier that represents its effectiveness.

It corresponds to the norm of the unit vector obtained from cos(f) and sin(f).

Mathematically, it should always be equal to 1, but that doesn't hold true in this context.

$\left \|\vec{v}\right \|=\sqrt{\cos(f)^{2}+\sin(f)^{2}}$

When multiplied with a given jump distance, it gives an upper bound for the improved jump distance with its corresponding half-angle.

List of useful Half Angles

Large Half Angles
On July 27th 2021, kemytz discovered that certain yaws grant more speed when using Optifine Fast Math (a feature which reduces the number of significant angles down to 4096). In fact, this is not specific to fast math, and vanilla "large half angles" were discovered soon after.

Large half angles are more effective due to the low amount of precision floats can work with at that range: instead of being shifted by a single unit, angles can be shifted by up to 64 units.

For example, the yaw 5898194.5° gives a multiplier of 1.003, which is huge compared to small half angles. This half angle is the most effective that exists, and makes jumps such as 2.125bm 4+0.5 possible.

With Fast Math, half angles are further amplified and the player is able to move while their yaw is less than $$360 \times 2^{19}$$, compared to $$360 \times 2^{15}$$ in vanilla.

For example, the yaw 121000000° gives a multiplier of 1.09, which is so ludicrous it makes flat momentum 5b possible. This mechanic should not be considered official as it relies on a mod, and using this exploit is likely not authorized on servers (even if Optifine is).

New versions of Optifine fix half angles entirely (since version U L5, released in december 2019).