There are often times that we’re forced to supply angles in radians rather than degrees, here’s one you might recognise:
// startAngle and endAngle must be given in radians! ctx.arc(x, y, radius, startAngle, endAngle, anticlockwise); |
Luckily we can convert between degrees and radians, because one degree is equal to PI / 180 radians:
var one_degree_in_radians = 1 * Math.PI / 180; var five_degrees_in_radians = 5 * Math.PI / 180; |
Conversely, one radian is equal to 180 / PI degrees:
var one_radian_in_degrees = 1 * 180 / Math.PI; var five_radians_in_degrees = 5 * 180 / Math.PI; |
So let’s use this knowledge to create variables that make converting between degrees and radians easier:
// One degree in radians var TO_RADIANS = Math.PI / 180; // One radian in degrees var TO_DEGREES = 180 / Math.PI; var three_degrees_in_radians = 3 * TO_RADIANS; var two_radians_in_degrees = 2 * TO_DEGREES; |
Nothing can stop us now…
// 360 degree arc ctx.arc(10, 10, 50, 0, 360 * TO_RADIANS, false); // Sine, Cosine, etc require angles in radians: var sineX = Math.sin(90 * TO_RADIANS); |
Begone, radians!