shuffle(randFromArray([[3,4], [6,8], [5,12], [7, 24], [8, 15], [10, 24], [12,16]])) BC sqrt(AC * AC + BC * BC) 5 / AB randFromArray([ "ABC", "BAC" ]) (ANGLE.substring(0,1) + ANGLE.substring(2)) (function(){ if ( OPPOSITE_NAME === "AC" ){ return AC; } else if ( OPPOSITE_NAME === "BC" ){ return CB; } return AB; })() "AB" AB ANGLE.substring(1) (function(){ if ( ADJACENT_NAME === "AC" ){ return AC; } else if ( ADJACENT_NAME === "BC" ){ return BC; } return AB; })() fraction( OPPOSITE_VALUE, ADJACENT_VALUE, false, false, false, false) OPPOSITE_VALUE / ADJACENT_VALUE fraction(OPPOSITE_VALUE, AB) OPPOSITE_VALUE / AB fraction(ADJACENT_VALUE, AB) ADJACENT_VALUE / AB

\overline{AC} is AC units long

\overline{BC} is BC units long

\overline{AB} is AB units long

What is \sin(\angle ANGLE) ?

betterTriangle(BC * SCALE, AC * SCALE, "A", "B", "C", BC, AC, AB);
SIN

SOH CAH TOA

Sin = Opposite over Hypotenuse

\sin(\angle ANGLE)=SIMPLE_SIN

What is \cos(\angle ANGLE) ?

betterTriangle(BC * SCALE, AC * SCALE, "A", "B", "C", BC, AC, AB);
COS

SOH CAH TOA

\cos(\angle ANGLE )=SIMPLE_COS

What is \tan(\angle ANGLE) ?

betterTriangle(BC * SCALE, AC * SCALE, "A", "B", "C", BC, AC, AB);
TAN

SOH CAH TOA

\tan(\angle ANGLE)=SIMPLE_TAN

First identify \angle ANGLE

if (ANGLE === 'ABC') { var angle = atan(AC / BC) * 180 / Math.PI; arc([BC * SCALE, 0], 0.6, 180 - angle, 180); } else { var angle = atan(BC / AC) * 180 / Math.PI; arc([0, AC * SCALE], 0.6, 270, 270 + angle); }

Therefore:

opposite = \overline{OPPOSITE_NAME} = OPPOSITE_VALUE
adjacent = \overline{ADJACENT_NAME} = ADJACENT_VALUE