Complementary angle calculator
Find the angle that completes an acute angle to a right angle, so the complement of 30° is 60° and that of 12.5° is 77.5°. Enter any measure strictly between 0 and 90 degrees and read its partner. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Angle
- 30
- Angle degrees
- 30
- Complement degrees
- 60
The complementary angles calculator answers one of the oldest questions in elementary geometry: given an acute angle, which angle completes it to a right angle? Two angles are complementary when their measures add up to exactly 90 degrees, so the complement is found by subtracting the given measure from 90. You send the measure of an acute angle in degrees — anything strictly greater than 0 and strictly less than 90 — and you get back its complement, also in degrees.
What complementary angles are
Complementary angles are any pair of angles whose measures sum to 90 degrees. A 30 degree angle is complemented by a 60 degree angle, a 12.5 degree angle by a 77.5 degree angle. They do not need to sit next to each other or share a side; the definition is purely about the sum of their measures.
When two complementary angles do share a vertex and a side, their outer sides form a right angle, which is why the concept appears the moment right triangles and perpendicular lines enter a geometry course. The complementary angles calculator reduces the whole idea to its arithmetic core: complement equals 90 minus the given measure.
Where it fits in practice
The obvious home is homework checking and classroom tools, but complementary angles surface anywhere a right angle is split into two parts. Carpenters cutting a miter for a square corner, machinists setting a bevel gauge, surveyors working out a sight line from a measured tilt, programmers rotating a sprite toward a target — all of them, sooner or later, subtract an angle from 90 degrees.
What you can do with it
Check geometry homework
Verify that two angles really are complementary by asking for the complement of one and comparing it with the other.
Split a right angle in a build
Get the second cut angle for a mitered square corner from the first one, in a script or a spreadsheet formula.
FAQ
What is a complementary angle?
One of a pair of angles whose measures add up to exactly 90 degrees. Each angle in the pair is the complement of the other.
Which inputs are accepted?
Any finite number strictly between 0 and 90, interpreted as degrees.
Why are 0 and 90 degrees rejected?
Because neither forms a complementary pair in the usual sense: 0 degrees would need a full right angle as its partner, and 90 degrees would need an angle of zero measure.
Does it work with decimal measures?
Yes. Measures like 12.5 or 33.75 are fine, and the complement is rounded to six decimal places so results are stable across machines.
Is anything stored?
No. The number is processed in memory and discarded; only the angle and its complement are returned.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/math/complementary-angles \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"angle":30}'const res = await fetch("https://api.kit.forhosting.com/math/complementary-angles", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"angle": 30
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/complementary-angles",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"angle": 30
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/complementary-angles", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"angle":30}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"angle":30}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/complementary-angles", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"angle": 30
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.complementary_angles",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
The same deterministic code runs free in your browser on this page and through the paid API, so the answer you see here is exactly the answer your integration receives.
What complementary angles are
Because only acute angles can take part in such a pair — an angle of 90 degrees or more would need a partner of zero or negative measure — the endpoint rejects anything outside the open interval from 0 to 90 degrees and tells you why, instead of silently returning a meaningless negative angle.
How the computation works
The input is a single number: the measure of your angle in degrees. Both bounds are exclusive, because at exactly 0 the complement would be a right angle that adds nothing to a pair, and at exactly 90 the complement would be zero — neither case is a complementary pair in the usual sense. The endpoint validates that it is present, that it parses as a finite number, and that it lies strictly between 0 and 90. The complement is then computed as 90 minus your measure and rounded to six decimal places, and the response echoes your angle back alongside it, so a log or an audit trail can show both members of the pair without a second lookup. The rounding is deliberate: raw floating point subtraction can differ in the last bit between machines, and a stable, rounded result guarantees that the free web version and the paid API return byte-identical answers every time.
Where it fits in practice
Having it as a tiny deterministic endpoint means a spreadsheet, a build script or a tutoring app can get the answer without embedding its own arithmetic and its own validation rules, and can rely on the same strictness about the 0-to-90 range everywhere it runs. It costs $0.002 per request through the API, with no network calls or hidden state on our side, and the identical logic runs free in the browser on this page for one-off checks before you wire it into anything.
Integration use cases
Power a tutoring app
Generate complementary-angle exercises and validate student answers against a deterministic, always-consistent endpoint.
Technical questions
What does it cost?
$0.002 per request through the API. It is also free to run in your browser on this page, with the same code and the same answer.