Sagitta calculator
Get the rise of a circular arc from its radius and half-angle: a radius of 10 with a half-angle of 30 degrees gives a sagitta of about 1.34, a chord of 10 and a central angle of 60 degrees. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Radius
- 10
- Half angle
- 30
- Angle unit
- Degrees
- Half angle radians
- 0.5235987756
- Half angle degrees
- 30
- Sagitta
- 1.3397459622
The sagitta of a circular arc is the perpendicular height from the midpoint of the chord to the arc itself—the rise of the segment, the bow of the curve, the versine height that architects, machinists, surveyors, and geometry students rediscover whenever they turn a radius and a half-angle into a single length. Given a positive circle radius r and a half-angle α (half the central angle subtended by the arc), the closed form is elementary and exact: s equals r times one minus the cosine of α, which is also r times the versine of α. Results include the sagitta and versine values, plus chord length, distance from centre to chord, and the full central angle in degrees and radians for cross-checks against textbook diagrams.
What the sagitta means and how the versine formula works
Draw a circle of radius r and mark two points on the circumference that subtend a central angle θ at the centre. The straight segment joining those points is the chord; the arc between them is the circular arc; the perpendicular distance from the midpoint of the chord out to the arc is the sagitta.
By symmetry the line from the centre through the mid-chord is also the bisector of the central angle, so each side of the figure is a right triangle with hypotenuse r and apex half-angle α equals θ over two. The adjacent side of that right triangle is r times cosine of α, which is the distance from the centre to the chord. Subtracting that distance from the radius leaves the sagitta: s equals r minus r cosine α, which factors as r times one minus cosine α.
The trigonometric function one minus cosine is the classical versine, so the sagitta is often called the versine height of the arc: s equals r times versin of α.
When α is zero the chord collapses to a point and the sagitta is zero; when α is ninety degrees the chord is a diameter of half-angle and the sagitta equals the full radius; when α approaches one hundred eighty degrees the arc nearly closes and the sagitta approaches twice the radius for a full semicircle half-angle of ninety degrees already recovers s equals r.
The formula uses only a cosine evaluation after an optional degrees-to-radians conversion, so there is no iteration, no sampling, no dependence on wall-clock time, and no need for coordinates or a full arc-length integral in the input. Chord length follows at once as two r sine α, and the product identities let students recompute every field by hand for nice half-angles such as thirty, forty-five, and sixty degrees.
What you can do with it
Architecture, arches, and vault rise takeoff
Turn a design radius and half-sweep into the rise of a circular arch or barrel vault for drawings, formwork heights, and clearance checks without a drafting office calculator.
Optics, mirrors, and machining arc rise
Compute optical sagitta or CNC arc rise from radius of curvature and half-aperture angle for mirror blanks, turned profiles, and quality-control worksheets.
FAQ
What is the formula for the sagitta of a circular arc?
With radius r and half-angle α in radians, sagitta s = r·(1 − cos α). That is also r times the versine of α. If α is in degrees, convert first: α_rad = α_deg·π/180.
What is the half-angle?
The half-angle α is half the central angle θ subtended by the arc (α = θ/2).
Can I enter the half-angle in radians?
The default is degrees for classroom and construction workflows.
Is the sagitta calculator free?
The browser tool is free and runs locally.
What happens when the half-angle is 90 degrees?
The chord becomes a diameter and the sagitta equals the full radius. At a half-angle of zero the chord shrinks to a single point and the sagitta is zero.
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/geom/sagitta \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"radius":10,"half_angle":30}'const res = await fetch("https://api.kit.forhosting.com/geom/sagitta", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"radius": 10,
"half_angle": 30
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geom/sagitta",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"radius": 10,
"half_angle": 30
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geom/sagitta", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"radius":10,"half_angle":30}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"radius":10,"half_angle":30}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geom/sagitta", 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": 10,
"half_angle": 30
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geom.sagitta",
"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 negative radius is rejected with invalid_input rather than silently taking an absolute value, so scripts and grading pipelines see an honest error when the length measure is geometrically impossible.
How to call the API and what the JSON response contains
Use it from geometry homework pipelines, arch and vault rise takeoffs, optical mirror sagitta worksheets, CNC and sheet-metal arc rise scripts, interview-prep sandboxes, or any workflow that needs reproducible sagitta numbers without installing a computer-algebra package on every machine. Send a JSON body with radius and half_angle. Field radius is the positive circle radius; aliases r and R are accepted. Field half_angle is the half central angle of the arc—the angle from the perpendicular bisector of the chord to either endpoint radius; aliases alpha, half_theta, and a map to the same meaning. Optional angle_unit is degrees by default or radians when you pass radians (aliases unit and angle_mode). On success the response echoes radius, half_angle, and angle_unit; adds half_angle_radians and half_angle_degrees for convenience; returns sagitta as the primary length result and versine as the unitless one-minus-cosine factor; and includes chord_length, distance_to_chord, central_angle_radians, central_angle_degrees, method set to sagitta_versine, and a short formula block documenting the closed forms. Classic check: radius ten and half_angle thirty degrees yields sagitta equal to ten times one minus cosine of thirty degrees, about one point three four length units, with chord length equal to ten, matching the equilateral geometry of a sixty-degree central angle. Another check: radius five and half_angle π over two radians yields sagitta five because cosine of a right half-angle is zero. Failed validation—missing a required field, a non-finite number, a negative or zero radius, an unknown angle unit, or a value outside published limits—returns invalid_input and is never charged. Pricing is a flat $0.002 per successful request with unit item.
Practical tips, limits, and how this differs from related tools
Half-angle may be any finite real value; cosine is even so a negative half-angle yields the same sagitta magnitude as its absolute value, which is useful when a CAD export signs the half-angle by orientation. When teaching, prefer paired examples: radius ten and thirty degrees for the equilateral-chord check against one minus square-root of three over two; radius one and sixty degrees for a short rise that students can recompute on a scientific calculator; and a negative radius to demonstrate the hard rejection path required by this product contract. Prefer this page when you already know the radius and half-angle and need the rise of the arc. Keep radius inside the published positive range up to one trillion so intermediate products stay finite in IEEE double precision on the Worker and in the browser. Units of length are whatever you pass—metres, inches, or game units—as long as you interpret the sagitta in that same unit; the API does not convert linear units for you. Because the primary identity needs only r and α, learners can rearrange for radius when sagitta and half-angle are known, or solve for α with an inverse cosine, outside this endpoint—this tool intentionally does not invert. This landing targets people searching for a sagitta calculator or a circular-arc versine height tool; it is not a chord-length calculator (though chord length is returned as a convenience field), not a circular-segment area tool, and not an arc-length or sector-area solver—use the dedicated capabilities when those quantities are the primary search intent. Failed tasks that return invalid_input do not consume prepaid balance, which keeps exploratory scripts cheap when users type impossible measures while learning the contract. Round-trip checks are easy: after solving, confirm that radius minus distance_to_chord equals sagitta within floating tolerance, that sagitta equals radius times versine, and that central_angle is twice the half-angle in both units.
Integration use cases
Homework checks for sagitta and versine
Give students a radius and half-angle; compare their hand-computed sagitta s = r(1−cos α) and chord length against a deterministic API or free browser result.
Technical questions
Why are negative radii rejected?
A circle radius is a positive length. Negative input returns invalid_input instead of taking an absolute value, so automation never silently treats an impossible measure as valid.