ForHosting KIT · Math

Two circles intersection

Find where two circles cross from their centers and radii: circles of radius 5 centered at (0, 0) and (8, 0) meet at (4, 3) and (4, -3). Touching circles give one point, and circles that never meet are reported clearly. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
X1
0
Y1
0
R1
5
X2
8
Y2
0
R2
5
You get
Quantity
2
Relation
intersect
D
8

Given two circles on the Cartesian plane, their intersection is the set of points that lie on both circumferences at once.

How two circles meet in the plane

Let d be the Euclidean distance between the centers. Geometry textbooks classify the configuration by comparing d with the sum and absolute difference of the radii. When d is strictly less than the absolute difference of the radii, the smaller circle lies entirely inside the larger one without touching.

When d equals the sum they touch externally at a single point; when d equals the absolute difference they touch internally at a single point. When the absolute difference is strictly less than d and d is strictly less than the sum, the circles cross at exactly two points that are symmetric with respect to the line of centers. Offsetting that foot by plus or minus h in the direction perpendicular to the line of centers yields the two intersection points, or a single point when h is zero.

Because the path uses only arithmetic and one square root after the geometric gates, it is deterministic, O(1), and free of iterative solvers or trigonometric libraries. Coincident centers with equal radii would admit infinitely many solutions and are rejected rather than approximated.

Where circle–circle intersection shows up in real work

Secondary-school and college analytic geometry courses constantly ask students to find the points common to two given circles; a trusted calculator with a strict configuration check speeds homework grading and removes spreadsheet mistakes where someone forgets the containment case or mis-signs the perpendicular offset. Multilateration sketches and simple surveying place a station by intersecting two distance arcs from known control points; returning both candidates with a deterministic order lets operators pick the physically meaningful side without recomputing the algebra by hand.

If you later need circle–line intersection, sphere intersections in three dimensions, or circle fitting from point samples, treat those as separate search intents rather than overloading this two-circle landing.

Homework and exam checks

Compute the real intersection points of two circles from centers and radii, or fail clearly when they do not meet.

Survey and multilateration sketches

Intersect two distance arcs from known stations to recover candidate positions with a deterministic point order.

CAD and game constraint helpers

Resolve two circular constraints or circular hitbox contact points without reimplementing radical-axis math in every tool.

What does it cost?

The browser tool is free and runs locally.

How do I know whether two circles intersect?

Compare the distance between the centers with the sum and the difference of the radii. Strictly between the two means two crossing points; equal to either means a single point of contact, as with two circles of radius 5 whose centers are 10 apart.

What happens if the circles do not meet?

If they are too far apart, or one sits inside the other without touching, the calculator says so with a clear message instead of returning an empty list that looks like an answer.

What if the two circles are identical?

Two circles with the same center and the same radius share every point, so there is no finite answer. That case is refused rather than approximated.

Can I use it to locate a point from two distances?

Yes. Draw a circle around each known station with the measured distance as its radius; the intersection gives the candidate positions, listed in a fixed order so you can pick the right side.

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.

POSThttps://api.kit.forhosting.com/geom/two-circles-intersection

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.

curl -X POST https://api.kit.forhosting.com/geom/two-circles-intersection \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"x1":0,"y1":0,"r1":5,"x2":8,"y2":0,"r2":5}'
{
  "x1": 0,
  "y1": 0,
  "r1": 5,
  "x2": 8,
  "y2": 0,
  "r2": 5
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "geom.two_circles_intersection",
  "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.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Missing fields, non-positive radii, separate circles, and strict containment without contact are rejected with a clear invalid_input error instead of an empty list that looks like a successful empty solve. No network calls, no random sampling, and no floating-point surprises beyond ordinary IEEE-754 arithmetic on the six numbers you provide.

How two circles meet in the plane

Large coordinates can still overflow IEEE-754 double range; non-finite intermediates fail with a clear message instead of returning Infinity in JSON.

What you send and what you get back

After parsing, the service computes the center distance d, compares it with the sum and absolute difference of the radii, and either fails with an explicit separate-or-contains message or builds the radical-axis foot and half-chord. Example checks: centers at (0, 0) and (8, 0) with equal radii five yield two points near (4, plus or minus three); equal radii five with centers ten units apart are externally tangent at the midpoint; centers far farther apart than the radius sum fail naming separate circles. Wire the free browser tool for quick sanity checks, then call the identical contract from scripts when you need bulk evaluation without reimplementing the numeric gates in every language. Short aliases such as cx1, cy1, radius1, center1_x, and the matching second-circle names are accepted so form labels can stay compact without diverging handlers. Missing fields, empty strings, non-numeric text, NaN, Infinity, and non-positive radii are rejected with invalid_input and are not charged. On success the JSON response returns points as an array of one or two objects with x and y rounded for stable serialization, count equal to the array length, relation set to intersect, tangent_external, or tangent_internal, the distance d, echoes of the six normalized inputs, and method set to two_circles_radical_axis so logs and teaching UIs can document the algorithm. API pricing is the published base of $0.002 per successful item.

Where circle–circle intersection shows up in real work

Because this capability is a pure parse engine, failed validation does not consume balance and successful runs stay at $0.002 per item.

What formula does this calculator use?

The radical-axis construction: distance d between centers, offset a = (r1² − r2² + d²)/(2d), half-chord h = √(r1² − a²), then ± perpendicular offsets. The response includes method: "two_circles_radical_axis".

What happens if the circles do not intersect?

If they are separate (d greater than the sum of radii) or one fully contains the other without touching (d less than |r1 − r2|), the request fails with invalid_input and a message describing the configuration.

Are tangent circles considered a success?

Yes. External and internal tangency return a single point with relation tangent_external or tangent_internal.

What if both circles are the same?

Same center and equal radii admit infinitely many intersection points; that case is rejected with invalid_input rather than inventing a finite list.

Read the full KIT documentation →