Angle Calculator
Convert an angle between degrees, radians, gradians, turns, DMS, arcminutes, arcseconds and mils, or work one out from two sides, three sides, a rise and run, a polygon, two vectors or a pair of clock hands. Every answer comes with a protractor diagram.
Last updated: · Every formula checked against the worked example on this page · Free, no sign up
📏 1. Calculator
Inputs
Your Result
Your angle appears here once you calculate.
___
Download your angle as a plain text file. Change any field and press Calculate to refresh it first.
📊 2. Your Results
⚡ Quick Answer
An angle calculator works out the size of an angle in degrees, then converts it to radians, gradians, turns, degrees-minutes-seconds and mils.
For a right triangle, the angle is the arctangent of the opposite side divided by the adjacent side. A triangle with sides 3 and 4 around the right angle gives arctan(3 ÷ 4) = 36.87 degrees, which is 0.6435 radians, 40.97 gradians and 36° 52′ 11.6″. To convert degrees to radians, multiply by pi and divide by 180. To go back, multiply by 180 and divide by pi.
Rule of thumb: an angle under 90 degrees is acute, exactly 90 is a right angle, between 90 and 180 is obtuse, exactly 180 is straight, and over 180 is reflex.
Key Takeaways
- An angle calculator converts between all seven common angle units through decimal degrees.
- A full turn is 360 degrees, 2π radians, 400 gradians and 6,400 NATO mils.
- One degree is 60 arcminutes, and one arcminute is 60 arcseconds, exactly like hours and minutes.
- To convert degrees to radians multiply by 0.0174533; to convert radians to degrees multiply by 57.2958.
- The three angles of any triangle always add to 180 degrees, no matter its shape or size.
- A roof pitch of 6 in 12 is 26.57 degrees, which is a 50% grade. Percent grade and degrees are not the same thing.
📑 3. What Is an Angle?
An angle is the amount of turn between two lines that meet at a point. It is measured by how far one arm has swung away from the other, not by how long the arms are. A full turn all the way round is 360 degrees, so a quarter turn, the square corner you see on a page or a wall, is 90 degrees.
Two arms and a shared corner, called the vertex, are all you need. Stretch the arms longer and the angle does not change, which is the single most useful thing to know about angles: size of turn, not size of shape.
3.1 A worked one-liner
A right triangle with a side of 3 across from the angle and a side of 4 next to it has an angle of arctan(3 ÷ 4) = 36.87 degrees.
3.2 What the units actually mean
3.3 Who uses angles and why
- Builders and roofers setting a roof pitch, a ramp gradient or a staircase.
- Carpenters cutting mitres, where two 45 degree cuts make a 90 degree corner.
- Surveyors and navigators working in degrees, minutes and seconds.
- Physiotherapists recording joint range of motion with a goniometer.
- Engineers and programmers working in radians, because calculus and code expect them.
- Students solving triangles with sine, cosine and tangent.
3.4 Angles against the nearest alternatives
| Measure | What it tells you | Unit | Use it when |
|---|---|---|---|
| Angle | How much turn between two lines | degrees, radians | Cuts, pitches, joints, bearings, triangles |
| Percent grade | Rise as a percentage of run | % | Roads, ramps, drainage, treadmills |
| Roof pitch | Rise per 12 units of run | x in 12 | Roofing in the USA and Canada |
| Ratio or gradient | 1 unit up per n units along | 1 in n | Railways, accessibility ramps, UK road signs |
| Bearing | Direction clockwise from north | degrees 0 to 360 | Navigation, surveying, aviation |
| Slope (maths) | Rise divided by run | unitless | Graphs, lines, calculus |
The trap here is treating percent grade as degrees. A 100% grade is not a vertical wall, it is 45 degrees, because rise equals run. A vertical wall has no percent grade at all.
🔎 4. What Does Your Angle Mean?
Your angle tells you how far one line has turned from another. Under 90 degrees is acute, a sharp corner. Exactly 90 is a right angle, a square corner. Between 90 and 180 is obtuse, an open corner. Exactly 180 is a straight line, and anything over 180 is reflex, the big way round. The unit matters as much as the number, so always say which one you mean.
4.1 What your specific angle means
4.2 Where it sits against the common angles
4.3 The trigonometric ratios for your angle
4.4 Your complement and supplement
4.5 Why rounding an angle matters more than it looks
Rounding 36.87 degrees to 37 is a change of 0.13 degrees, which sounds like nothing. Over a 10 metre run that moves the far end by about 23 millimetres. Angular error grows with distance, which is why surveyors keep seconds and why a small aiming error matters more the further you are from the target.
4.6 What changes your angle
- Which side you call opposite. Swap opposite and adjacent and you get the complement instead, 53.13 degrees rather than 36.87.
- Your reference line. An angle from the horizontal and the same angle from the vertical differ by 90 degrees.
- Direction of turn. Clockwise and anticlockwise give the same size but opposite signs in most software.
- Going past 360. 405 degrees and 45 degrees point the same way. They are coterminal.
- Degrees against radians. A calculator left in the wrong mode gives an answer that looks plausible and is completely wrong.
4.7 What to do next
- Write the angle down with its unit, never as a bare number.
- Sketch it and check the sketch matches the number.
- If you are cutting, measure the angle again from the other side as a check.
- Decide the precision you need. Whole degrees for a garden fence, seconds for a survey.
- Keep the full decimal value for any further calculation, and round only at the end.
4.8 Common mistakes this calculator prevents
- Leaving a calculator in radian mode and reading the answer as degrees.
- Writing 36.87 degrees as 36 degrees 87 minutes. It is 36° 52′ 11.6″, because minutes are sixtieths.
- Treating a 100% grade as vertical. It is 45 degrees.
- Swapping opposite and adjacent, which returns the complement rather than the angle.
- Assuming three sides always make a triangle. If two sides do not exceed the third, no triangle exists.
- Adding a reflex and a non-reflex angle without noticing they were measured different ways round.
4.9 A sanity check you can do in your head
📋 5. How Do You Use Your Angle?
Use your angle three ways: to set or cut something physical, to feed a further calculation, and to record what you did. Set a saw or a bevel gauge from the degree value, use the radian value in any code or spreadsheet trigonometry, and record degrees-minutes-seconds when the work has to be repeatable by someone else. Always carry the unit with the number.
Five ready to copy blocks. Each one fills in with your own numbers once you press Calculate.
1. A plain summary to save or share
2. What to check before you rely on it
3. Your angle record in every unit
4. A re-measure checklist
5. A formal line for a report or a document
🔢 6. What Is the Angle Formula?
There is no single angle formula, because it depends on what you can measure. From two sides of a right triangle, the angle is arctan(opposite ÷ adjacent). From three sides of any triangle it is the law of cosines. From two known angles it is 180 minus their sum. Every one of these gives degrees, and every other unit is a conversion from there.
θ = arcsin(o ÷ h) | θ = arccos(a ÷ h)
gon = deg × 10 ÷ 9 | turns = deg ÷ 360 | mil = deg × 6400 ÷ 360
cos A = (b² + c² − a²) ÷ (2bc)
grade % = (rise ÷ run) × 100 | pitch = (rise ÷ run) × 12
θ = arccos((v₁·v₂) ÷ (|v₁||v₂|)) | clock = |30H + 0.5M − 6M|
coterminal = θ ± 360°n
🛠 7. How to Use This Calculator
Ten steps, carried through one worked example: a right triangle with a side of 3 opposite the angle and a side of 4 next to it.
- Choose what you want to work out. The dropdown has ten modes in four groups. Ours is "Right triangle angle from two sides".
- Read the field labels carefully. Opposite is the side across from the angle you want. Adjacent is the side touching it, not the long sloping one.
- Type the opposite side. Enter 3. Units do not matter as long as both sides use the same one.
- Type the adjacent side. Enter 4.
- Press Calculate Angle. The result panel shows 36.87 degrees and calls it an acute angle straight away.
- Check the protractor diagram. Section 2 draws your angle. If the drawing does not look like the number, you have mixed up a field.
- Read the other units. 0.6435 radians, 40.97 gradians, 0.1024 turns, 655.46 mils and 36° 52′ 11.6″.
- Use the trig ratios if you need another side. sin is 0.6, cos is 0.8 and tan is 0.75 for this angle.
- Switch modes to cross-check. Put 36.87 into the complement and supplement mode and you get 53.13 and 143.13.
- Download it. Use Download TXT for the short version, or Download Doc and Download PDF in Section 2 for the full report.
📈 8. How to Calculate an Angle in Excel
This section shows how to calculate an angle in Excel or Google Sheets, using the same triangle as everywhere else on this page: opposite 3, adjacent 4, giving 36.87 degrees.
8.1 The functions you need
| Function | What it does | Example | Result |
|---|---|---|---|
DEGREES | Turns radians into degrees | =DEGREES(0.6435) | 36.87 |
RADIANS | Turns degrees into radians | =RADIANS(36.87) | 0.6435 |
ATAN | Arctangent of a ratio, in radians | =DEGREES(ATAN(3/4)) | 36.87 |
ATAN2 | Arctangent from x and y, quadrant aware | =DEGREES(ATAN2(4,3)) | 36.87 |
ACOS | Arccosine, needed for the law of cosines | =DEGREES(ACOS(0.8)) | 36.87 |
ASIN | Arcsine, from opposite over hypotenuse | =DEGREES(ASIN(0.6)) | 36.87 |
TRUNC | Chops the decimal off, used for DMS | =TRUNC(36.87) | 36 |
PI() | Gives pi for manual conversions | =36.87*PI()/180 | 0.6435 |
There is no ATAND in Excel. Every inverse trig function returns radians, so DEGREES() around the outside is not optional.
8.2 Step by step
8.1 Step 1: the angle from two sides
Excel measures angles in radians, so every trig answer needs DEGREES() wrapped round it. Note the argument order: ATAN2 in Excel takes x first, then y, which is the opposite of most programming languages.
8.2 Step 2: convert to every other unit
With the angle in degrees, four formulas fill the rest of the row. Gradians and turns have no built in function, so they are plain arithmetic.
Radians: =RADIANS(D2)Gradians: =D2*10/9Turns: =D2/360NATO mils: =D2*6400/3608.3 Step 3: decimal degrees to degrees, minutes, seconds
Three formulas split a decimal angle into DMS. Take the whole degrees first, then the minutes, then whatever is left becomes seconds.
Deg: =TRUNC(A2)Min: =TRUNC((A2-B2)*60)Sec: =(A2-B2-C2/60)*3600Back again: =B2+C2/60+D2/36008.4 Step 4: all three angles from three sides
The law of cosines in one cell. Drag the pattern across for angles B and C, or take the short cut for the last one: the three angles must add to 180.
Angle A: =DEGREES(ACOS((B2^2+C2^2-A2^2)/(2*B2*C2)))Angle C: =180-D2-E28.5 Step 5: slope, percent grade and roof pitch
One rise and one run give all three. Grade and pitch are simple ratios, so no trig function is needed for them.
Angle: =DEGREES(ATAN(A2/B2))Grade %: =A2/B2*100Pitch in 12: =A2/B2*120.00"°". The cell still holds a plain number you can calculate with, but it displays as 36.87°.8.3 The awkward cases
- ATAN2 argument order. Excel is
ATAN2(x, y). R, Python, JavaScript and almost everything else areatan2(y, x). Swapping them gives you the complement instead of the angle. - Angles over 90 degrees.
ATANonly returns minus 90 to plus 90. UseATAN2when the angle can land in any quadrant. - Rounding errors in ACOS. A ratio that should be exactly 1 can come out as 1.0000000000000002 and throw
#NUM!. Wrap it:=ACOS(MIN(1,MAX(-1,ratio))). - Time formatting hijack. Typing
36:52:12into a plain cell is read as a time, not an angle. Keep degrees, minutes and seconds in three separate numeric columns. - Negative DMS. For a negative angle, take the sign off first, split it, then put the minus sign on the degrees only. Never on the minutes and seconds as well.
=DEGREES(ATAN2(3,4)) gives 53.13, not 36.87. That is not a bug, it is Excel's x-then-y order. If your angle is the complement of the one you expected, this is almost always why.8.4 Why answers differ across software
- ATAN2 argument order. Excel takes x first; R, Python and JavaScript take y first. This is the single biggest source of disagreement between a spreadsheet and a script.
- Degrees against radians. Excel, R and Python all work in radians internally. This calculator reports degrees by default because that is what people measure in.
- Value of pi.
PI(), R'spiand Python'smath.piall carry the same 15 significant digits, so they agree exactly. A page using 3.14 is 0.05% out. - Where the seconds differ. The Excel sheet above starts from the already-rounded 36.87, which splits to 36° 52′ 12.0″. The R and Python scripts carry the full precision value 36.86990, which splits to 36° 52′ 11.6″. That is a difference in the input, not in the formula. Round once, at the end.
8.5 Charting it in Excel
To draw an angle, use a Scatter with Straight Lines chart. Put the vertex at (0,0), the first arm at (1,0), and the second arm at (cosθ, sinθ) using =COS(RADIANS(D2)) and =SIN(RADIANS(D2)). Set both axes to the same minimum and maximum, otherwise Excel stretches one axis and your 45 degree angle will not look like 45 degrees. For a share-of-a-turn view, a doughnut chart with two slices, the angle and 360 minus the angle, works well.
8.6 Error messages and what they mean
| Error | Cause | Fix |
|---|---|---|
#NUM! | ACOS or ASIN got a value outside minus 1 to plus 1 | Clamp it with MIN(1,MAX(-1,x)), or check the three sides really form a triangle |
#DIV/0! | The adjacent side or the run is 0 | A run of 0 is exactly 90 degrees. Handle it with =IF(B2=0,90,...) |
#VALUE! | A cell holds text such as 36° or 3 in | Retype it as a plain number and format the degree sign instead |
##### | Column too narrow | Widen it. The value is fine |
| Answer is the complement | ATAN2 arguments the wrong way round | Excel is ATAN2(x,y). Swap them |
Google Sheets: every formula above works unchanged, including ATAN2 with the same x-then-y order.
📊 9. How to Calculate an Angle in R
One script, complete and runnable from top to bottom. It uses the same 3-4-5 triangle as Section 8, so the angle comes out at 36.87 degrees.
9.1 The complete script
# ============================================================ # Angle Calculator in R # Stats Unlock - statsunlock.com # Change only the INPUTS block below, then run the whole file. # ============================================================ # ---- 1. INPUTS (change these) ------------------------------- opposite <- 3 # side across from the angle adjacent <- 4 # side next to the angle # Other things this script also reports: sides <- c(a = 5, b = 6, c = 7) # any triangle, for the law of cosines rise <- 6 # for slope, pitch and grade run <- 12 n_sides <- 8 # for a regular polygon # Reading from a file instead: # dat <- read.csv("angles.csv") # dat <- dat[complete.cases(dat), ] # drop rows with missing values # ---- 2. CORE ANGLE ------------------------------------------ # R works in radians, so convert on the way out. # NOTE: R is atan2(y, x). Excel is ATAN2(x, y). They are opposite. angle_rad <- atan2(opposite, adjacent) angle_deg <- angle_rad * 180 / pi # ---- 3. EVERY UNIT ------------------------------------------ gradians <- angle_deg * 10 / 9 turns <- angle_deg / 360 arcmin <- angle_deg * 60 arcsec <- angle_deg * 3600 mils <- angle_deg * 6400 / 360 to_dms <- function(deg) { s <- sign(deg); a <- abs(deg) d <- floor(a) mn <- floor((a - d) * 60) sc <- (a - d - mn / 60) * 3600 sprintf("%s%d deg %d min %.1f sec", ifelse(s < 0, "-", ""), d, mn, sc) } # ---- 4. THE OTHER MODES ------------------------------------- law_of_cosines <- function(a, b, c) { # angle opposite side a acos((b^2 + c^2 - a^2) / (2 * b * c)) * 180 / pi } A <- law_of_cosines(sides["a"], sides["b"], sides["c"]) B <- law_of_cosines(sides["b"], sides["a"], sides["c"]) C <- 180 - A - B slope_deg <- atan2(rise, run) * 180 / pi grade_pct <- rise / run * 100 pitch_12 <- rise / run * 12 interior <- (n_sides - 2) * 180 / n_sides exterior <- 360 / n_sides # ---- 5. PLAIN ENGLISH VERDICT ------------------------------- band <- as.character(cut(angle_deg, breaks = c(-Inf, 0, 90, 180, 360, Inf), labels = c("a negative angle", "an acute angle", "an obtuse angle", "a reflex angle", "more than a full turn"), right = FALSE)) if (isTRUE(all.equal(angle_deg, 90))) band <- "a right angle" if (isTRUE(all.equal(angle_deg, 180))) band <- "a straight angle" cat("\n=== ANGLE RESULT ===\n") cat(sprintf("Angle : %.4f degrees\n", angle_deg)) cat(sprintf("That is %s.\n", band)) cat(sprintf("Deg min sec : %s\n", to_dms(angle_deg))) cat(sprintf("Radians : %.6f\n", angle_rad)) cat(sprintf("Gradians : %.4f\n", gradians)) cat(sprintf("Turns : %.6f\n", turns)) cat(sprintf("Arcminutes : %.2f\n", arcmin)) cat(sprintf("Arcseconds : %.1f\n", arcsec)) cat(sprintf("Mils (NATO) : %.2f\n", mils)) cat(sprintf("Complement : %.4f degrees\n", 90 - angle_deg)) cat(sprintf("Supplement : %.4f degrees\n", 180 - angle_deg)) cat(sprintf("sin cos tan : %.4f %.4f %.4f\n", sin(angle_rad), cos(angle_rad), tan(angle_rad))) cat(sprintf("\nTriangle %g-%g-%g : A=%.2f B=%.2f C=%.2f (sum %.2f)\n", sides["a"], sides["b"], sides["c"], A, B, C, A + B + C)) cat(sprintf("Slope %g in %g : %.2f degrees, %.2f%% grade, %.2f in 12\n", rise, run, slope_deg, grade_pct, pitch_12)) cat(sprintf("Polygon n=%d : interior %.2f, exterior %.2f degrees\n", n_sides, interior, exterior)) # ---- 6. FIGURE AT 300 DPI ----------------------------------- png("angle.png", width = 2000, height = 2000, res = 300) op <- par(mar = c(2, 2, 3, 2), pty = "s") plot(NA, xlim = c(-1.2, 1.2), ylim = c(-1.2, 1.2), asp = 1, axes = FALSE, xlab = "", ylab = "", main = sprintf("Angle = %.2f degrees", angle_deg)) th <- seq(0, 2 * pi, length.out = 400) lines(cos(th), sin(th), col = "grey80") arc <- seq(0, angle_rad, length.out = 120) polygon(c(0, 0.42 * cos(arc), 0), c(0, 0.42 * sin(arc), 0), col = "#bbf7d0", border = NA) lines(0.42 * cos(arc), 0.42 * sin(arc), col = "#16a34a", lwd = 3) arrows(0, 0, 1, 0, col = "#1d4ed8", lwd = 3, length = 0.12) arrows(0, 0, cos(angle_rad), sin(angle_rad), col = "#7c3aed", lwd = 3, length = 0.12) text(0.62 * cos(angle_rad / 2), 0.62 * sin(angle_rad / 2), sprintf("%.2f deg", angle_deg), col = "#166534", font = 2, cex = 0.9) points(0, 0, pch = 19, cex = 0.9) par(op) dev.off() cat("\nSaved angle.png at 300 dpi\n") cat("Generated by STATS UNLOCK - statsunlock.com\n")
There is no install.packages() step. This script runs in any R installation.
9.2 What each part of the script does
| Block | What it does |
|---|---|
| 1. INPUTS | The only block you edit. Two sides, plus values for the other modes |
atan2(opposite, adjacent) | The angle in radians. R takes y first, Excel takes x first |
* 180 / pi | Radians to degrees. R has no built in degrees() function |
to_dms() | Splits decimal degrees into degrees, minutes and seconds |
law_of_cosines() | Any triangle angle from three sides |
cut() | Turns the angle into a plain English band, with exact checks for 90 and 180 |
| 5. VERDICT | Prints every unit and every mode with cat() and sprintf() |
| 6. FIGURE | Saves angle.png at 300 dpi, a protractor drawing of the angle |
9.3 What the figure shows
A unit circle with the angle drawn on it: a blue arrow along the 0 degree line, a purple arrow at your angle, a green filled wedge between them, and the value printed inside the wedge. asp = 1 and pty = "s" together force a square plotting region, which matters more than it sounds: without them R stretches one axis and a 45 degree angle does not look like 45 degrees.
9.4 Problems and fixes
| Problem | Cause | Fix |
|---|---|---|
| The answer is about 57 times too big | You treated radians as degrees | Multiply by 180 / pi. One radian is 57.2958 degrees |
| The answer is the complement | atan2 arguments swapped | R is atan2(y, x), so opposite first, adjacent second |
NaN from acos | Floating point pushed the ratio just past 1 | Clamp it: acos(pmin(1, pmax(-1, ratio))) |
| The angle looks squashed in the plot | Axes have different scales | Keep asp = 1 and pty = "s" |
| The png file is empty | dev.off() was never reached | Run dev.off() once by hand, then run the script again |
argument of length 0 | A named element of sides was mistyped | Check with names(sides) |
9.5 One-liners
| Task | R |
|---|---|
| Angle from two sides | atan2(3, 4) * 180 / pi |
| Degrees to radians | 36.87 * pi / 180 |
| Radians to degrees | 0.6435 * 180 / pi |
| Degrees to gradians | 36.87 * 10 / 9 |
| Law of cosines | acos((b^2 + c^2 - a^2) / (2 * b * c)) * 180 / pi |
| Roof pitch to degrees | atan2(6, 12) * 180 / pi |
🐍 10. How to Calculate an Angle in Python
The same 3-4-5 triangle again, so the angle is 36.87 degrees and the full precision DMS is 36° 52′ 11.6″.
10.1 The complete script
# ============================================================ # Angle Calculator in Python # Stats Unlock - statsunlock.com # Change only the INPUTS block below, then run the whole file. # pip install matplotlib # ============================================================ import math import matplotlib matplotlib.use("Agg") import matplotlib.pyplot as plt # ---- 1. INPUTS (change these) ------------------------------- opposite = 3 # side across from the angle adjacent = 4 # side next to the angle sides = (5, 6, 7) # any triangle, for the law of cosines rise = 6 # for slope, pitch and grade run = 12 n_sides = 8 # for a regular polygon # Reading from a file instead: # import pandas as pd # dat = pd.read_csv("angles.csv").dropna() # ---- 2. CORE ANGLE ------------------------------------------ # Python works in radians. NOTE: math.atan2(y, x) takes y FIRST, # which is the opposite of Excel's ATAN2(x, y). angle_rad = math.atan2(opposite, adjacent) angle_deg = math.degrees(angle_rad) # ---- 3. EVERY UNIT ------------------------------------------ gradians = angle_deg * 10 / 9 turns = angle_deg / 360 arcmin = angle_deg * 60 arcsec = angle_deg * 3600 mils = angle_deg * 6400 / 360 def to_dms(deg): sign = "-" if deg < 0 else "" a = abs(deg) d = int(a) mn = int((a - d) * 60) sc = (a - d - mn / 60) * 3600 return f"{sign}{d} deg {mn} min {sc:.1f} sec" # ---- 4. THE OTHER MODES ------------------------------------- def law_of_cosines(a, b, c): """Angle opposite side a, in degrees. Clamped so rounding cannot break acos.""" ratio = (b * b + c * c - a * a) / (2 * b * c) return math.degrees(math.acos(max(-1.0, min(1.0, ratio)))) a, b, c = sides A = law_of_cosines(a, b, c) B = law_of_cosines(b, a, c) C = 180 - A - B slope_deg = math.degrees(math.atan2(rise, run)) grade_pct = rise / run * 100 pitch_12 = rise / run * 12 interior = (n_sides - 2) * 180 / n_sides exterior = 360 / n_sides # ---- 5. PLAIN ENGLISH VERDICT ------------------------------- if math.isclose(angle_deg, 90): band = "a right angle" elif math.isclose(angle_deg, 180): band = "a straight angle" elif angle_deg < 0: band = "a negative angle" elif angle_deg < 90: band = "an acute angle" elif angle_deg < 180: band = "an obtuse angle" elif angle_deg < 360: band = "a reflex angle" else: band = "more than a full turn" print("\n=== ANGLE RESULT ===") print(f"Angle : {angle_deg:.4f} degrees") print(f"That is {band}.") print(f"Deg min sec : {to_dms(angle_deg)}") print(f"Radians : {angle_rad:.6f}") print(f"Gradians : {gradians:.4f}") print(f"Turns : {turns:.6f}") print(f"Arcminutes : {arcmin:.2f}") print(f"Arcseconds : {arcsec:.1f}") print(f"Mils (NATO) : {mils:.2f}") print(f"Complement : {90 - angle_deg:.4f} degrees") print(f"Supplement : {180 - angle_deg:.4f} degrees") print(f"sin cos tan : {math.sin(angle_rad):.4f} " f"{math.cos(angle_rad):.4f} {math.tan(angle_rad):.4f}") print(f"\nTriangle {a}-{b}-{c} : A={A:.2f} B={B:.2f} C={C:.2f} (sum {A + B + C:.2f})") print(f"Slope {rise} in {run} : {slope_deg:.2f} degrees, " f"{grade_pct:.2f}% grade, {pitch_12:.2f} in 12") print(f"Polygon n={n_sides} : interior {interior:.2f}, exterior {exterior:.2f} degrees") # ---- 6. FIGURE AT 300 DPI ----------------------------------- fig, ax = plt.subplots(figsize=(6, 6), dpi=300) th = [i * 2 * math.pi / 400 for i in range(401)] ax.plot([math.cos(t) for t in th], [math.sin(t) for t in th], color="0.8", lw=1) arc = [i * angle_rad / 120 for i in range(121)] ax.fill([0] + [0.42 * math.cos(t) for t in arc] + [0], [0] + [0.42 * math.sin(t) for t in arc] + [0], color="#bbf7d0", zorder=1) ax.plot([0.42 * math.cos(t) for t in arc], [0.42 * math.sin(t) for t in arc], color="#16a34a", lw=2.5, zorder=2) ax.annotate("", xy=(1, 0), xytext=(0, 0), arrowprops=dict(color="#1d4ed8", lw=2.5, arrowstyle="-|>")) ax.annotate("", xy=(math.cos(angle_rad), math.sin(angle_rad)), xytext=(0, 0), arrowprops=dict(color="#7c3aed", lw=2.5, arrowstyle="-|>")) ax.text(0.62 * math.cos(angle_rad / 2), 0.62 * math.sin(angle_rad / 2), f"{angle_deg:.2f} deg", color="#166534", fontweight="bold", ha="center") ax.plot(0, 0, "ko", ms=5) ax.set_xlim(-1.2, 1.2); ax.set_ylim(-1.2, 1.2) ax.set_aspect("equal"); ax.axis("off") ax.set_title(f"Angle = {angle_deg:.2f} degrees") fig.tight_layout() fig.savefig("angle.png", dpi=300) plt.close(fig) print("\nSaved angle.png at 300 dpi") print("Generated by STATS UNLOCK - statsunlock.com")
Install the one third-party package with pip install matplotlib.
10.2 What each part of the script does
| Block | What it does |
|---|---|
| 1. INPUTS | The only block you edit |
math.atan2(opposite, adjacent) | The angle in radians, y first, quadrant aware |
math.degrees() | Radians to degrees. Python has this built in, R does not |
to_dms() | Splits decimal degrees into degrees, minutes and seconds |
law_of_cosines() | Clamps the ratio with max(-1, min(1, x)) so rounding cannot break acos |
math.isclose() | Tests for exactly 90 and 180 without a floating point trap |
matplotlib.use("Agg") | Draws without a screen, so it runs on a server or in a notebook |
| 6. FIGURE | Saves angle.png at 300 dpi with set_aspect("equal") |
10.3 What the figure shows
The same protractor drawing as the R script: a unit circle, a blue arrow at 0 degrees, a purple arrow at your angle, a green wedge between them and the value printed inside. set_aspect("equal") is what keeps the circle a circle.
10.4 Problems and fixes
| Problem | Cause | Fix |
|---|---|---|
| The answer is about 57 times too big | You printed radians and called them degrees | Wrap it in math.degrees() |
| The answer is the complement | atan2 arguments swapped | Python is atan2(y, x). Excel is the other way round |
ValueError: math domain error | acos got a value just outside minus 1 to plus 1 | The script already clamps it. Keep the max(-1, min(1, ...)) |
| Seconds read 11.6 not 12.0 | Full precision 36.86990 rather than the rounded 36.87 | Neither is wrong. Round once, at the end |
| The circle looks like an ellipse | Axes scaled differently | Keep ax.set_aspect("equal") |
ModuleNotFoundError: matplotlib | Not installed in this environment | Run pip install matplotlib |
10.5 One-liners
| Task | Python |
|---|---|
| Angle from two sides | math.degrees(math.atan2(3, 4)) |
| Degrees to radians | math.radians(36.87) |
| Radians to degrees | math.degrees(0.6435) |
| Degrees to gradians | 36.87 * 10 / 9 |
| Law of cosines | math.degrees(math.acos((b**2 + c**2 - a**2) / (2*b*c))) |
| Roof pitch to degrees | math.degrees(math.atan2(6, 12)) |
📋 11. Reference Tables
Nine lookup tables. This is the angle chart section: use it to check an answer, convert a unit, or read off a pitch without typing anything.
Table 11.1 Degrees to radians, gradians, turns and mils
| Degrees | Radians | Radians as π | Gradians | Turns | Mils (NATO) |
|---|---|---|---|---|---|
| 0° | 0.000000 | 0 | 0.0000 | 0.000000 | 0.0 |
| 15° | 0.261799 | π/12 | 16.6667 | 0.041667 | 266.7 |
| 30° | 0.523599 | π/6 | 33.3333 | 0.083333 | 533.3 |
| 36.87° | 0.643503 | — | 40.9667 | 0.102417 | 655.5 |
| 45° | 0.785398 | π/4 | 50.0000 | 0.125000 | 800.0 |
| 60° | 1.047198 | π/3 | 66.6667 | 0.166667 | 1,066.7 |
| 75° | 1.308997 | 5π/12 | 83.3333 | 0.208333 | 1,333.3 |
| 90° | 1.570796 | π/2 | 100.0000 | 0.250000 | 1,600.0 |
| 120° | 2.094395 | 2π/3 | 133.3333 | 0.333333 | 2,133.3 |
| 135° | 2.356194 | 3π/4 | 150.0000 | 0.375000 | 2,400.0 |
| 150° | 2.617994 | 5π/6 | 166.6667 | 0.416667 | 2,666.7 |
| 180° | 3.141593 | π | 200.0000 | 0.500000 | 3,200.0 |
| 270° | 4.712389 | 3π/2 | 300.0000 | 0.750000 | 4,800.0 |
| 360° | 6.283185 | 2π | 400.0000 | 1.000000 | 6,400.0 |
What to conclude: every unit is just a different slicing of the same full turn. To go from degrees to radians multiply by 0.0174533; to come back multiply by 57.2958.
Table 11.2 The common angles and where you meet them
| Angle | Type | sin | cos | tan | Where you see it |
|---|---|---|---|---|---|
| 0° | Zero | 0 | 1 | 0 | A flat line, no turn at all |
| 30° | Acute | 0.5000 | 0.8660 | 0.5774 | Set square, half of an equilateral triangle |
| 45° | Acute | 0.7071 | 0.7071 | 1.0000 | Mitre cuts, a 100% grade, a square's diagonal |
| 60° | Acute | 0.8660 | 0.5000 | 1.7321 | Equilateral triangle, hexagon corners |
| 90° | Right | 1.0000 | 0 | undefined | Square corners, walls, vertical drops |
| 108° | Obtuse | 0.9511 | −0.3090 | −3.0777 | Interior angle of a regular pentagon |
| 120° | Obtuse | 0.8660 | −0.5000 | −1.7321 | Interior angle of a regular hexagon, honeycomb |
| 135° | Obtuse | 0.7071 | −0.7071 | −1.0000 | Interior angle of a regular octagon |
| 180° | Straight | 0 | −1 | 0 | A straight line, a half turn |
| 270° | Reflex | −1.0000 | 0 | undefined | Three quarters of a turn |
| 360° | Full turn | 0 | 1 | 0 | All the way round, back to the start |
What to conclude: tan is undefined at 90° and 270° because the adjacent side is zero and you cannot divide by it. Every calculator, including this one, reports that rather than a number.
Table 11.3 Roof pitch, angle and percent grade
| Pitch (rise in 12) | Angle | Percent grade | Ratio | Typical use |
|---|---|---|---|---|
| 1 in 12 | 4.76° | 8.3% | 1 in 12.00 | Minimum for most membrane roofs |
| 2 in 12 | 9.46° | 16.7% | 1 in 6.00 | Low slope, needs sealed roofing |
| 3 in 12 | 14.04° | 25.0% | 1 in 4.00 | Minimum for most asphalt shingles |
| 4 in 12 | 18.43° | 33.3% | 1 in 3.00 | Common on garages and porches |
| 5 in 12 | 22.62° | 41.7% | 1 in 2.40 | Walkable, common on houses |
| 6 in 12 | 26.57° | 50.0% | 1 in 2.00 | The most common residential pitch |
| 8 in 12 | 33.69° | 66.7% | 1 in 1.50 | Steep, roof jacks needed |
| 9 in 12 | 36.87° | 75.0% | 1 in 1.33 | Steep. Same angle as a 3-4-5 triangle |
| 12 in 12 | 45.00° | 100.0% | 1 in 1.00 | Exactly 45 degrees, not vertical |
| 16 in 12 | 53.13° | 133.3% | 1 in 0.75 | Very steep, A-frame territory |
| 24 in 12 | 63.43° | 200.0% | 1 in 0.50 | Spire and turret roofs |
What to conclude: a 12 in 12 roof is 45 degrees and a 100% grade. If you ever see 100% described as vertical, that page is wrong.
Table 11.4 Percent grade to degrees
| Grade | Angle | Ratio | Where you meet it |
|---|---|---|---|
| 1% | 0.57° | 1 in 100 | Minimum drainage fall on a flat surface |
| 2% | 1.15° | 1 in 50 | Typical patio and driveway fall |
| 5% | 2.86° | 1 in 20 | Gentle road grade |
| 8.3% | 4.76° | 1 in 12 | Maximum for most wheelchair ramps |
| 10% | 5.71° | 1 in 10 | Steep road, common warning sign |
| 15% | 8.53° | 1 in 6.7 | Very steep road |
| 20% | 11.31° | 1 in 5 | Among the steepest public roads |
| 25% | 14.04° | 1 in 4 | Extreme road grade |
| 50% | 26.57° | 1 in 2 | A 6 in 12 roof |
| 100% | 45.00° | 1 in 1 | Rise equals run. Not vertical |
| 200% | 63.43° | 1 in 0.5 | Very steep bank or spire roof |
What to conclude: grade and angle only agree at 0. They diverge fast, and there is no grade at all for a vertical face, because you would be dividing by a run of zero.
Table 11.5 Regular polygon angles
| Sides | Name | Interior angle | Exterior angle | Sum of interior angles |
|---|---|---|---|---|
| 3 | Triangle | 60.00° | 120.00° | 180° |
| 4 | Square | 90.00° | 90.00° | 360° |
| 5 | Pentagon | 108.00° | 72.00° | 540° |
| 6 | Hexagon | 120.00° | 60.00° | 720° |
| 7 | Heptagon | 128.57° | 51.43° | 900° |
| 8 | Octagon | 135.00° | 45.00° | 1,080° |
| 9 | Nonagon | 140.00° | 40.00° | 1,260° |
| 10 | Decagon | 144.00° | 36.00° | 1,440° |
| 12 | Dodecagon | 150.00° | 30.00° | 1,800° |
| 20 | Icosagon | 162.00° | 18.00° | 3,240° |
What to conclude: the exterior angles of any polygon always add to exactly 360°, however many sides it has. That is why the exterior column is simply 360 divided by the number of sides.
Table 11.6 Degrees, minutes and seconds
| Decimal degrees | DMS | Decimal degrees | DMS |
|---|---|---|---|
| 0.1° | 0° 06′ 00″ | 0.75° | 0° 45′ 00″ |
| 0.25° | 0° 15′ 00″ | 0.9° | 0° 54′ 00″ |
| 0.5° | 0° 30′ 00″ | 1° | 1° 00′ 00″ |
| 0.0167° | 0° 01′ 00″ | 0.000278° | 0° 00′ 01″ |
| 36.87° | 36° 52′ 12.0″ | 36.8699° | 36° 52′ 11.6″ |
| 45.5° | 45° 30′ 00″ | 51.5074° | 51° 30′ 26.6″ |
What to conclude: minutes and seconds are sixtieths, exactly like clock time. 36.87° is 36° 52′, never 36° 87′. The last row is the latitude of London, which is how DMS is normally used.
Table 11.7 Which unit each field uses
| Field | Unit used | Why | Common trap |
|---|---|---|---|
| Everyday building and carpentry | Degrees | Whole numbers land on useful values | Confusing degrees with percent grade |
| Mathematics and physics | Radians | Calculus formulas only work in radians | Calculator left in the wrong mode |
| Programming | Radians | Every standard trig library expects them | Passing degrees straight into sin() or cos() |
| Surveying and navigation | Degrees, minutes, seconds | Fine precision without long decimals | Writing 36.87° as 36° 87′ |
| Some European surveying | Gradians | A right angle is a round 100 | Assuming a gradian is a degree |
| Artillery and optics | Mils | 1 mil is roughly 1 metre at 1,000 metres | NATO mils are 6,400, not the 6,283 of a true milliradian |
| Physiotherapy | Degrees | Joint range of motion is recorded in whole degrees | Different zero positions between clinicians |
| Roofing (USA and Canada) | Rise in 12 | Matches how rafters are cut | Treating 12 in 12 as vertical instead of 45° |
What to conclude: the unit is part of the answer. An angle written as a bare number is ambiguous, and that ambiguity is the single most common cause of a wrong result.
Table 11.8 What every mode in this calculator needs
| Mode | What you enter | Formula | Worked example |
|---|---|---|---|
| Convert an angle | A value and its unit | Everything goes via degrees | 1 rad = 57.30° |
| DMS to decimal | Degrees, minutes, seconds | D + M/60 + S/3600 | 36° 52′ 12″ = 36.87° |
| Third angle | Two known angles | 180 − A − B | 55 and 65 give 60° |
| Three sides | Side a, b, c | Law of cosines | 5, 6, 7 give 44.42° |
| Right triangle | Opposite and adjacent | arctan(o ÷ a) | 3 and 4 give 36.87° |
| Slope and pitch | Rise and run | arctan(rise ÷ run) | 6 in 12 gives 26.57° |
| Regular polygon | Number of sides | (n − 2) × 180 ÷ n | 8 sides give 135° |
| Two vectors | x and y of each | arccos of the normalised dot product | (1,0) and (1,1) give 45° |
| Complement and supplement | One angle | 90 − θ and 180 − θ | 36.87° gives 53.13° and 143.13° |
| Clock hands | Hour and minute | |30H + 0.5M − 6M| | 3:15 gives 7.5° |
What to conclude: pick the mode by what you can actually measure. If you can measure two sides, you never need a protractor.
Table 11.9 Angle measurement accuracy in practice
| Method | Typical agreement | Good for | Not good for |
|---|---|---|---|
| Estimating by eye | ±10° or worse | A rough sanity check | Anything you will cut or build |
| School protractor | ±1° | Homework, sketches | Fine joinery, surveying |
| Combination square or bevel gauge | ±0.5° | Carpentry, transferring an angle | Absolute measurement without a reference |
| Digital angle finder or inclinometer | ±0.1° to ±0.2° | Site work, machine setup, roofing | Long range or geodetic work |
| Smartphone level app | ±1° to ±2° | Quick checks when nothing else is to hand | Precision work, uncalibrated phones vary |
| Clinical goniometer | ±5° between clinicians | Tracking joint range over time | Comparing measurements between different people |
| Surveyor's total station | A few arcseconds | Land boundaries, engineering setting out | Nothing, other than the cost |
What to conclude: these ranges come from the measurement literature in Section 22. Note the clinical goniometer row in particular: studies repeatedly find that two clinicians measuring the same joint can differ by around 5 degrees, which is why joint range is tracked by the same person where possible. Report an angle to the precision your instrument can actually support, not to the precision this calculator can print.
📑 12. Example Results
Eight worked examples covering the whole range: a textbook triangle, an exact right angle, a slope, a polygon, a reflex angle, a case where the obvious reading is wrong, an invalid input, and one real world puzzle.
| Item | Value |
|---|---|
| Mode | Right triangle from two sides |
| Opposite | 3 |
| Adjacent | 4 |
| Angle | 36.87° |
| Radians | 0.643501 |
| Deg min sec | 36° 52′ 11.6″ |
| Type | Acute angle |
| Complement | 53.13° |
What it means: The 3-4-5 triangle is the one every trade knows, because the sides are whole numbers and the corner is exactly square. The angle at the 4 side is 36.87 degrees, and at the 3 side it is 53.13.
How to use it: Use it to check a corner is square on site: measure 3 along one wall, 4 along the other, and the diagonal must be exactly 5.
| Item | Value |
|---|---|
| Mode | Convert an angle |
| Input | 90 degrees |
| Radians | 1.570796 (π/2) |
| Gradians | 100.0000 |
| Turns | 0.250000 |
| Mils (NATO) | 1,600 |
| tan | undefined |
| Type | Right angle |
What it means: At 90 degrees the adjacent side is zero, so tan is undefined rather than very large. This is the one angle where a calculator must say so instead of printing a number.
How to use it: Note the round numbers: 100 gradians and a quarter turn. That neatness is exactly why gradians were invented.
| Item | Value |
|---|---|
| Mode | Slope, roof pitch and percent grade |
| Rise | 6 |
| Run | 12 |
| Angle | 26.57° |
| Percent grade | 50.00% |
| Ratio | 1 in 2.00 |
| Radians | 0.463648 |
| Type | Acute angle |
What it means: A 6 in 12 roof is 26.57 degrees and a 50 percent grade. Three different numbers describing one slope, which is why roofing conversations go wrong so often.
How to use it: Say which measure you mean. A roofer hears 6 in 12, a civil engineer hears 50 percent, and a maths book hears 26.57 degrees.
| Item | Value |
|---|---|
| Mode | Regular polygon interior angle |
| Sides | 8 |
| Interior angle | 135.00° |
| Exterior angle | 45.00° |
| Sum of interior angles | 1,080° |
| Radians | 2.356194 (3π/4) |
| Type | Obtuse angle |
| Supplement | 45.00° |
What it means: Every corner of a regular octagon is 135 degrees, and the exterior angle is the supplement, 45 degrees. Interior plus exterior always makes a straight line.
How to use it: Set a mitre saw to half the exterior angle, 22.5 degrees, to cut the joints for an octagonal frame.
| Item | Value |
|---|---|
| Mode | Complement, supplement and reference |
| Input | 315 degrees |
| Type | Reflex angle |
| Coterminal 0 to 360 | 315.0000° |
| Reference angle | 45.0000° |
| Quadrant | 4 |
| Also equals | −45° |
| Radians | 5.497787 |
What it means: 315 degrees and minus 45 degrees point in exactly the same direction. Above 180 degrees you are measuring the long way round, which is legitimate but easy to misread.
How to use it: In navigation and CAD, always state whether you measured clockwise or anticlockwise. The number alone does not tell anyone.
| Item | Value |
|---|---|
| Assumed meaning | Vertical, 90 degrees |
| Actual angle | 45.00° |
| Rise and run | Equal |
| Roof pitch | 12 in 12 |
| Radians | 0.785398 (π/4) |
| Grade of a true vertical | Undefined, run is zero |
| Error if assumed vertical | 45 degrees out |
| Type | Acute angle |
What it means: This is the misread that costs the most. A 100 percent grade is 45 degrees, because rise equals run. Percent grade rises without limit and never reaches vertical, because a vertical face has a run of zero and you cannot divide by it.
How to use it: Whenever you see a percentage on a road sign or a specification, convert it before you picture it. Table 11.4 has the full conversion.
| Item | Value |
|---|---|
| Mode | Triangle angles from three sides |
| Side a | 1 |
| Side b | 2 |
| Side c | 9 |
| Result | No result |
| Message | Those three sides cannot form a triangle |
| Why | 1 + 2 is less than 9 |
| What is not shown | NaN or a bare error |
| Fix | Re-measure the sides |
What it means: Any two sides of a triangle must add up to more than the third. Sides of 1, 2 and 9 fail that test, so no triangle exists and the calculator stops rather than returning nonsense.
How to use it: If you hit this on site, one of your three measurements is wrong. Re-measure the longest one first, since that is where the mistake usually is.
| Item | Value |
|---|---|
| Mode | Angle between clock hands |
| Time | 3:15 |
| Minute hand | 90.00° from 12 |
| Hour hand | 97.50° from 12 |
| Angle between | 7.50° |
| The long way round | 352.50° |
| Radians | 0.130900 |
| Type | Acute angle |
What it means: At 3:15 the hands are not together. The minute hand is exactly on the 3, but the hour hand has already crept a quarter of the way to the 4, which is 7.5 degrees further on.
How to use it: The hour hand moves 0.5 degrees every minute. Forgetting that is why most people answer 0 degrees for this classic puzzle.
📏 13. How Do You Measure an Angle Accurately?
Measure an angle by fixing a reference line first, then reading how far the second line has turned from it. Zero the instrument on a surface you know is flat or square, keep it in the same plane as the angle, read it twice from the same side, and write the unit down with the number. Most wrong angles come from a wrong reference line, not from a wrong instrument.
Twelve steps. They take a couple of minutes and they remove almost every source of error.
- Decide the reference line first. Horizontal, vertical, or one edge of the workpiece. Write it down. An angle without a stated reference is not a measurement.
- Zero the instrument. Put a digital angle finder on a surface you trust and check it reads 0.00. Most drift, and most have a zero button.
- Work in the same plane. Tilting the tool out of the plane of the angle always reads low. This is the commonest error with phone apps.
- Put the vertex where it belongs. On a protractor, the centre mark goes exactly on the corner, not near it.
- Read the correct scale. A protractor has two scales running opposite ways. Check your reading against whether the angle looks acute or obtuse.
- Measure from the same side both times. Reading from the other side gives the supplement, which is a plausible looking wrong answer.
- Prefer sides over a protractor. If you can measure two lengths, arctan of the ratio beats any protractor for accuracy.
- Use a longer baseline. Measuring a rise over 12 units of run is far more precise than over 1 unit, because your length error is spread over more distance.
- Write down the unit. Degrees, radians or gradians. Bare numbers cause more trouble here than anywhere else in measurement.
- Match precision to the instrument. A phone app cannot support two decimal places. Round to what the tool can actually deliver.
- Cross-check with a known angle. A square corner is 90, a mitre is 45, an equilateral corner is 60. If your reading is near one of those, verify it.
- Measure again. A second reading takes ten seconds and catches the wrong scale, the wrong side and the drifted zero.
13.1 The inputs, their units and their typical ranges
| Input | Unit | Typical range | Where you get it |
|---|---|---|---|
| Angle value | Any of the seven units | 0 to 360 degrees | Protractor, angle finder, plan, spec sheet |
| Opposite and adjacent | Any length, both the same | Anything above 0 | Tape measure or rule |
| Three sides | Any length, all the same | Any two must exceed the third | Tape measure across all three sides |
| Rise and run | Any length, both the same | Run above 0 | Spirit level and tape, or a plan |
| Degrees, minutes, seconds | D whole, M and S 0 to 59.99 | Any | Survey data, charts, coordinates |
| Number of sides | Whole number | 3 to 10,000 | Count them on the drawing |
| Vector components | Any, both the same | Not both 0 | Coordinates, CAD, physics problem |
| Hour and minute | 0 to 23, 0 to 59 | Any valid time | The clock face |
13.2 Common measuring mistakes
- Leaving a calculator or a script in radian mode and reading the answer as degrees.
- Reading the wrong scale on a protractor, giving the supplement instead of the angle.
- Tilting a phone or angle finder out of the plane of the angle.
- Swapping opposite and adjacent, giving the complement.
- Measuring the rise over a run of 1, so a 1 mm error becomes a large angular error.
- Recording 36.87 degrees as 36 degrees 87 minutes.
- Comparing a joint angle measured by one clinician with one measured by another, when the two can differ by about 5 degrees.
✅ 14. When Should You Use an Angle Calculator?
Use an angle calculator whenever you have measurements but not the angle, or the angle but not in the unit you need. It converts between degrees, radians, gradians, DMS and mils, and finds an angle from two sides, three sides, a rise and run, a polygon, two vectors or two clock hands. It is not a substitute for a calibrated instrument on safety critical work.
- You have two sides of a right triangle and need the angle.
- You need to convert degrees to radians for code or a formula.
- You are setting a roof pitch, a ramp, or a drainage fall.
- You have degrees, minutes and seconds and want a decimal, or the reverse.
- You need the interior or exterior angle of a regular polygon for a mitre cut.
- You want the complement, supplement, reference or coterminal angle.
- You are checking homework and want the working shown.
- The angle is structural, medical or otherwise safety critical. Use a calibrated instrument and follow the relevant standard.
- You need a bearing rather than an angle. Bearings are measured clockwise from north and have their own conventions.
- The surface is curved. Spherical geometry does not obey the flat 180 degree triangle rule.
- You need a solid angle, measured in steradians rather than degrees.
- The measurement must be legally defensible, such as a boundary survey.
14.1 Four quick examples
- Cutting a mitre for an octagonal frame. Polygon mode, 8 sides, gives 135 degrees interior, so each cut is 22.5 degrees. Right tool.
- Converting a slope for a drainage spec. Slope mode turns a 1 in 80 fall into 0.72 degrees. Right tool.
- Recording a patient's knee range of motion. Wrong tool for the measurement. Use a goniometer, and note that two clinicians can differ by about 5 degrees.
- Setting out a property boundary. Wrong tool. That needs a total station and a licensed surveyor, working in arcseconds.
14.2 Which tool you actually need
| If you need | Use | Because |
|---|---|---|
| An angle from measurements | This angle calculator | Two lengths beat a protractor for accuracy |
| An angle in another unit | The convert mode above | All seven units, through decimal degrees |
| A missing side, not an angle | A triangle or trigonometry calculator | You need the law of sines or Pythagoras |
| An area from an angle | An area calculator | Area needs lengths as well as the angle |
| A compass bearing | A bearing converter | Bearings run clockwise from north, 0 to 360 |
| A joint range of motion | A goniometer, used by the same clinician each time | Between-clinician differences are larger than the change you are tracking |
| A legally valid angle | A licensed surveyor | Boundary work has statutory accuracy requirements |
🔧 15. Troubleshooting and Common Errors
My answer is about 57 times too big or too small
I got the complement instead of the angle I wanted
ATAN2 arguments are swapped. Fix: the opposite side is the one across from the angle. Note that Excel is ATAN2(x, y) while R, Python and JavaScript are atan2(y, x).I got the supplement instead of the angle
Why does another website give a different answer?
My seconds are 11.6 but another tool says 12
The tool says tan is undefined
It says my three sides cannot form a triangle
The percent grade does not match the degrees
My angle is over 360 degrees
A negative complement is shown
Two clinicians measured the same joint and disagreed
The Download TXT button is greyed out
⚠ 16. Assumptions and Limitations
16.1 Assumptions
- The geometry is flat. On a sphere a triangle's angles add to more than 180 degrees, so every triangle mode here would read low over long distances.
- Your reference line is what you think it is. If the baseline is off by 2 degrees, every angle from it is off by 2 degrees, in the same direction.
- Both lengths are in the same unit. Mixing inches and centimetres in the two sides gives an angle that looks reasonable and is wrong.
- The right angle really is 90 degrees. The right triangle mode assumes it. If the corner is out, the answer is out.
- Your measurements are accurate to about the instrument's rating. A phone app rated at 1 degree cannot support a two decimal answer.
- The polygon is regular. The interior angle formula only holds if every side and every corner is identical.
- The angle is measured in one plane. A tool tilted out of plane always reads low.
- You know which direction you turned. The size is the same either way; the sign and the reflex reading are not.
16.2 Limitations, and what to use instead
| Limitation | Why it matters | Better tool |
|---|---|---|
| Flat geometry only | Long distance and navigation problems are spherical | Spherical trigonometry, or a geodetic calculator |
| Two dimensions only | A real roof hip or a machined part is a 3D angle | A vector calculator that takes x, y and z |
| No solid angles | Lighting and radiation need steradians, not degrees | A solid angle calculator |
| No bearings convention | Bearings run clockwise from north, not anticlockwise from east | A bearing converter |
| No measurement uncertainty | It reports your number, not its error bar | Repeat the measurement and report the spread |
| Not a legal instrument | Boundary and structural work has statutory requirements | A licensed surveyor or engineer with calibrated kit |
🏁 17. Conclusion
An angle calculator turns whatever you can measure, two sides, a rise and a run, three sides, or an angle in the wrong unit, into a clean number of degrees.
___ Press Calculate above to fill in your own numbers here.
Whatever you started with, the method is the same: get to decimal degrees first, then convert outward. Keep the full precision until the last step, and always say which unit you mean. That is all there is to an angle calculator.
❓ 18. Frequently Asked Questions
How do I calculate an angle?
How do I convert degrees to radians?
How do I convert radians to degrees?
What is the difference between degrees and radians?
How do I convert degrees, minutes and seconds to decimal degrees?
How do I find the third angle of a triangle?
How do I find an angle from three sides?
What is SOH CAH TOA?
How do I convert roof pitch to degrees?
Is a 100 percent grade the same as vertical?
What is the difference between percent grade and degrees?
What is a complement and a supplement of an angle?
What is a reflex angle?
What are coterminal angles?
How do I find the interior angle of a regular polygon?
How do I find the angle between two vectors?
What is a gradian?
What is the angle between clock hands at 3:15?
How do I calculate an angle in Excel?
How do I calculate an angle in Python or R?
🔖 19. Cite This Tool
If you used this angle calculator in a report, an assignment, a drawing set or a dissertation, cite it like this.
19.1 APA 7th edition
19.2 BibTeX
19.3 A plain reference for a document
19.4 How this calculator was built and checked
Trust in a calculator comes from being able to see how it works, so here is the method in full.
- Formula sources. Every formula here is standard plane trigonometry and geometry, not a proprietary variant. Right triangles use arctangent, arcsine and arccosine. Any triangle uses the law of cosines. Regular polygons use (n minus 2) times 180 divided by n. Vectors use the normalised dot product. None of it is disputed.
- Conversion factors. Exact values only, and all of them defined rather than measured: 360 degrees, 2π radians, 400 gradians and 6,400 NATO mils in a full turn; 60 arcminutes in a degree; 3,600 arcseconds in a degree. Pi comes from the language's own constant, carrying the full 15 significant digits, not a rounded 3.14.
- How the arithmetic is handled. Everything is computed in radians at full double precision and rounded only for display. The arccosine input in the law of cosines is clamped to the range minus 1 to plus 1, because floating point can push a value that should be exactly 1 just past it and break the function.
- Honest undefined values. Tangent is reported as undefined at 90 and 270 degrees rather than as a very large number. That is the mathematically correct answer, and a calculator that prints 16331239353195370 instead is misleading you.
- Verification. All ten modes and all seven units were checked against independent hand calculations before release. The worked example of a 3-4-5 triangle resolves to 36.87 degrees in this tool, in the Excel formulas in Section 8, in the R script in Section 9 and in the Python script in Section 10. Where the three genuinely disagree, such as Excel's ATAN2 taking x before y, or seconds differing because one started from a rounded input, the disagreement is named in Sections 8.3, 8.4 and 10.4 rather than hidden.
- What it will not do. This tool reports an angle from the numbers you type. It is not a calibrated instrument and carries no legal standing for a boundary survey, a structural certification or a clinical record. Section 16 lists every assumption and the direction of the error when each one fails.
- Evidence base. The accuracy figures in Table 11.9 are drawn from the twenty peer-reviewed studies in Section 22, covering clinical goniometry, digital inclinometers, smartphone angle apps and geotechnical tilt sensors.
Maintained by Stats Unlock. Last reviewed 26 August 2026. Found an error? Every formula and every worked number is on this page, so any result can be checked by hand.
🔗 20. Related Tools
More calculators from Stats Unlock.
📖 21. Glossary of Terms
| Term | Plain English meaning |
|---|---|
| Acute angle | Any angle smaller than 90 degrees. A sharp corner. |
| Adjacent side | In a right triangle, the side next to the angle you are working with, not the long sloping one. |
| Angle | The amount of turn between two lines that meet at a point. |
| Arccosine | The reverse of cosine. It takes a ratio and gives you back the angle. |
| Arcminute | One sixtieth of a degree. Written with a single prime mark. |
| Arcsecond | One sixtieth of an arcminute, so one 3,600th of a degree. |
| Arctangent | The reverse of tangent. Give it a rise over a run and it gives you the angle. |
| Bearing | A direction measured clockwise from north, from 0 to 360 degrees. |
| Complement | What you add to an angle to reach 90 degrees. |
| Coterminal | Two angles that point the same way but differ by whole turns, such as 45 and 405 degrees. |
| Degree | One 360th of a full turn. The everyday unit for angles. |
| Exterior angle | The angle you turn through at each corner when walking round a shape. |
| Goniometer | A hinged instrument for measuring the angle of a joint, used in physiotherapy. |
| Gradian | One 400th of a full turn, so a right angle is exactly 100. Also called a gon. |
| Hypotenuse | The longest side of a right triangle, always opposite the right angle. |
| Inclinometer | An instrument that measures tilt from horizontal. A digital angle finder is one. |
| Interior angle | The angle inside a shape at one of its corners. |
| Law of cosines | The rule that gives any angle of a triangle from its three side lengths. |
| Mil | One 6,400th of a full turn in NATO usage. Roughly one metre at 1,000 metres. |
| Obtuse angle | An angle between 90 and 180 degrees. An open corner. |
| Opposite side | In a right triangle, the side across from the angle you are working with. |
| Percent grade | Rise divided by run, times 100. A 100% grade is 45 degrees, not vertical. |
| Radian | The angle where the arc length equals the radius. There are 2 pi in a full turn. |
| Reference angle | The acute angle between your line and the nearest part of the horizontal axis. |
| Reflex angle | An angle bigger than 180 degrees but under 360. Measured the long way round. |
| Right angle | Exactly 90 degrees. A square corner. |
| Roof pitch | The rise per 12 units of run, written as x in 12. |
| Supplement | What you add to an angle to reach 180 degrees. |
| Vertex | The point where the two arms of an angle meet. |
📚 22. References
Twenty peer-reviewed studies on angle measurement accuracy, in APA 7th style. They cover clinical goniometry, digital inclinometers, smartphone angle apps and geotechnical tilt sensors, and they are the evidence behind the accuracy figures in Table 11.9.
- Hancock, G. E., Hepworth, T., & Wembridge, K. (2018). Accuracy and reliability of knee goniometry methods. Journal of Experimental Orthopaedics, 5(1). View paper
- Kiatkulanusorn, S., et al. (2023). Analysis of the concurrent validity and reliability of five common clinical goniometric devices. Scientific Reports, 13. View paper
- Shamsi, M., et al. (2019). Universal goniometer and electro-goniometer intra-examiner reliability in measuring the knee range of motion. BMC Sports Science, Medicine and Rehabilitation, 11. View paper
- Lind, V., et al. (2021). Reliability and validity of a digital goniometer for measuring knee joint range of motion. Measurement in Physical Education and Exercise Science, 25(4). View paper
- Ishida, T., et al. (2023). Validity and reliability of a wearable goniometer sensor for measuring knee flexion and extension angle during the gait cycle. Sensors, 23. View paper
- Ishii, K., et al. (2021). Accuracy and reliability of a smartphone application for measuring the knee joint angle. Journal of Physical Therapy Science, 33(5). View paper
- Gogia, P. P., Braatz, J. H., Rose, S. J., & Norton, B. J. (1987). Reliability and validity of goniometric measurements at the knee. Physical Therapy, 67(2). View paper
- Cunha, A. B., et al. (2020). Assessing the validity and reliability of a new video goniometer app for measuring joint angles in adults and children. Archives of Physical Medicine and Rehabilitation, 101(2). View paper
- Ferriero, G., et al. (2013). Reliability of a smartphone-based goniometer for knee joint goniometry. International Journal of Rehabilitation Research, 36(2). View paper
- Milanese, S., et al. (2014). Reliability and concurrent validity of knee angle measurement: Smart phone app versus universal goniometer. Manual Therapy, 19(6). View paper
- Pongkunakorn, A., et al. (2026). Accuracy of digital inclinometers for measuring knee extension during total knee arthroplasty. Arthroplasty, 8. View paper
- Pei, H., et al. (2021). Development of a novel Hall element inclinometer for slope displacement monitoring. Measurement, 181. View paper
- Komarizadehasl, S., et al. (2022). A novel wireless low-cost inclinometer made from combining the measurements of multiple MEMS gyroscopes and accelerometers. Sensors, 22. View paper
- Zheng, G., et al. (2024). Comprehensive calibration and laboratory validation of a MEMS sensor-based flexible inclinometer. Measurement Science and Technology, 35. View paper
- Yang, Y., et al. (2021). Research on electronic inclinometer calibration method and uncertainty budget based on the GUM method. Journal of Physics: Conference Series. View paper
- Yang, W., et al. (2013). A robust inclinometer system with accurate calibration of tilt and azimuth angles. IEEE Sensors Journal, 13(6). View paper
- Celik, A., et al. (2022). Biomedical wireless inclinometer device design and comparison of its measurements with an image processing method. European Journal of Science and Technology. View paper
- Yasoveev, V., et al. (2025). On the issue of assessing methodological errors in determining the static characteristics of inclinometric transducers. Electrical and Data Processing Facilities and Systems. View paper
- Liu, J., et al. (2025). Simultaneous inclination and azimuth sensing based on a multi-core fiber Fabry-Perot interferometer with the Vernier effect. Photonics, 12. View paper
- Kusuma, H. A., et al. (2025). Measurement of beach slope inclination based on the MPU6050 inertial sensor. IOP Conference Series: Earth and Environmental Science. View paper
