Crescent area calculator
Get the moon-shaped area that one circle keeps outside another: two circles of radius 5 with centers 5 apart leave a crescent of 47.830573874526 on each side. The overlapping lens is given too, so you never mix the two up. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Radius a
- 5
- Radius b
- 5
- Distance
- 5
- Area
- 47.8305738745
- Lune b
- 47.8305738745
- Intersection area
- 30.7092424652
A lune, also called a crescent, is the moon-shaped region bounded by two circular arcs that meet at two points. It is the part of one disk that does not lie in the other once two circles cross. This calculator takes the two radii and the distance between the centers, verifies that the circles intersect at two distinct points, and returns the crescent area of the first circle: the first disk minus the lens of overlap. Students, CAD users, and anyone shading a leftover between two rounds get a closed-form number instead of a numerical integral.
What a crescent (lune) is and why two radii plus a center distance fix it
In plane geometry a lune is a concave-convex region bounded by two circular arcs. Draw two circles that cross at a pair of points. Each circumference then contributes two arcs between those points, and choosing one arc from each circle so that the region sits inside one disk and outside the other produces a crescent.
That crescent is exactly the first disk minus the intersection of the two disks. The intersection itself is the symmetric lens, sometimes called a vesica piscis when the radii are equal: it is the sum of the two circular segments that share the common chord. Subtracting that lens from pi times the first radius squared leaves the lune of the first circle.
The same construction with the second radius yields the other lune. Both quantities are fixed once the two radii and the center distance are known, because those three lengths determine a triangle from each center to the two intersection points. The law of cosines supplies the half-angles at the centers; inverse cosine of those values, together with a single square root from Heron's formula on the same triangle, gives the lens area in closed form.
Searchers who type crescent area, lune area, or area of a crescent between two circles want that numeric leftover, not a lecture that only argues the figure exists. Delivering the echoed radii and distance, the crescent area of the first circle, the second lune, the intersection lens, and a short formula string makes the result easy to paste into notes, pin in automated tests, or feed a pipeline without reimplementing inverse cosine and the radicand in every language you teach or deploy.
The identities are deterministic and constant time, so the same three numbers always produce the same crescent.
Where a crescent-area calculator earns its keep
Classrooms and tutoring platforms use a crescent area calculator so learners can check the moon-shaped leftover for arbitrary radius pairs and a center distance without mixing up the lens and the lune by hand. Exam-prep generators need a deterministic oracle that marks a non-positive radius as invalid instead of silently returning zero, which a buggy grader might treat as success, and that rejects separate or nested circles instead of inventing an overlap.
Shop, CAD, and civil notes that record two circular cuts whose centers and radii are known recover a stable crescent area for material takeoff, a moon-shaped gasket, or a CNC leftover. Failed validation does not consume balance. Keep requests small, pin the rounded area in tests, and you get reproducible crescents for homework, LMS plugins, and edge workers without standing up a computer-algebra system.
What you can do with it
Homework and exam crescent-area drills
Students and graders confirm the moon-shaped leftover for classic two-radius and center-distance data, including rejection when a radius is not positive or the circles do not cross.
FAQ
What happens if a radius is not a positive number?
Zero, a negative length, a missing field, or a non-finite value is not a drawable circle; those calls are not billed.
When is the geometry invalid?
When the circles do not intersect at two distinct points: distance at least the sum of the radii (separate or externally tangent), distance at most the absolute difference (one nested in the other without crossing, or concentric), or a non-positive distance.
Is the crescent area calculator free?
The browser tool runs free on your device.
What is the difference between the crescent and the lens?
The lens is the overlap that both circles share. The crescent is what remains of the first circle once that lens is taken away. With radii of 5 and centers 5 apart, the lens measures 30.709242465219.
How do I get the crescent of the second circle?
It is reported alongside the first one, together with the lens. The main result always belongs to the circle you enter first, so swapping the two radii also swaps which crescent comes first.
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/crescent-area \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"radius_a":5,"radius_b":5,"distance":5}'const res = await fetch("https://api.kit.forhosting.com/math/crescent-area", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"radius_a": 5,
"radius_b": 5,
"distance": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/crescent-area",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"radius_a": 5,
"radius_b": 5,
"distance": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/crescent-area", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"radius_a":5,"radius_b":5,"distance":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"radius_a":5,"radius_b":5,"distance":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/crescent-area", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"radius_a": 5,
"radius_b": 5,
"distance": 5
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.crescent_area",
"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
A radius that is missing, not finite, or not strictly positive fails with invalid_input, as does a center distance that leaves the circles separate, nested without crossing, or concentric. The same pure function powers the free browser tool and the prepaid API path at $0.002 per successful call.
Input contract, formula, and what the response contains
Each radius must be a strictly positive finite number: zero and any negative length are rejected by name, because they do not describe a circle you can draw. Distance must likewise be strictly positive. Geometry is valid only when the circles intersect at two distinct points, which is the open interval from the absolute difference of the radii to their sum. If distance is at least the sum, the circles are separate or merely externally tangent and there is no crescent. If distance is at most the absolute difference, one disk contains the other without the circumferences crossing, which is a ring not a lune, or the circles are concentric. Those cases fail with a message that the geometry is invalid. Send a JSON body with three required numbers: radius_a, the positive radius of the first circle; radius_b, the positive radius of the second circle; and distance, the positive distance between the two centers. Missing fields, empty strings, non-numeric text, NaN, and Infinity fail with invalid_input naming the field and are not billed. On a valid triple the half-angles follow from the law of cosines, the lens area is radius_a squared times alpha plus radius_b squared times beta minus twice the triangle area, and the crescent area of the first circle is pi times radius_a squared minus that lens. A successful body echoes the three inputs, returns area as the primary crescent, includes lune_b and intersection_area for the other leftover and the lens, and restates the formula. Pair the JSON with your own sketch if you need a drawing; this endpoint computes areas only.
Where a crescent-area calculator earns its keep
This landing is not the lune of Hippocrates, which is a special equality for one right-triangle construction, and it is not a circular-segment calculator from a radius and a central angle: people who type crescent area want the leftover between two circular arcs from two radii and a center distance, returned as structured JSON they can trust.
Integration use cases
Deterministic fixtures for geometry tests
Pipelines that seed unit tests or interactive lune demos can call a pure crescent-area oracle instead of reimplementing inverse cosine and the intersection radicand in every language.
CAD, gasket, and circular-cut leftovers
Field or shop notes that record two intersecting circular cuts recover the crescent as structured JSON for reports, takeoff, or lightweight CAD helpers.
Technical questions
How do I compute crescent area from two radii and the centers' distance?
Send a JSON body with radius_a, radius_b (both positive finite numbers), and distance (positive, strictly between |radius_a − radius_b| and radius_a + radius_b). The response returns area as the lune of the first circle, plus lune_b, intersection_area, the echoed inputs, and the formula string.
Which formula does the crescent area calculator use?
The intersection lens is radius_a² α + radius_b² β − 2Δ, where α and β are the half-angles from the law of cosines and 2Δ is twice the triangle area on the common chord. Crescent area of the first circle is π radius_a² minus that lens.