二円の交点計算
中心と半径から2つの円の交点を求めます。半径5で中心が(0, 0)と(8, 0)の円は、(4, 3)と(4, -3)で交わります。接するだけなら1点、交わらなければその旨を表示します。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- X1
- 0
- Y1
- 0
- R1
- 5
- X2
- 8
- Y2
- 0
- R2
- 5
- 数量
- 2
- 関係
- intersect
- D
- 8
直交座標平面上の2つの円が与えられたとき、その交差とは両方の円周上に同時に存在する点の集合です。
平面上で2つの円がどのように交わるか
中心間のユークリッド距離をdとします。幾何学の教科書は、dを半径の和および絶対差と比較して配置を分類します。dが半径の絶対差より厳密に小さい場合、小さい円は大きい円の内部に触れることなく完全に含まれます。
dが和に等しいとき、2つの円は1点で外接します。dが絶対差に等しいとき、1点で内接します。絶対差がdより厳密に小さく、dが和より厳密に小さいとき、2つの円は中心線に関して対称なちょうど2点で交わります。
ここで用いる構成では根軸を配置します。その足を中心線に垂直な方向に±hだけずらすと、2つの交点が得られます。hが0のときは1点になります。
幾何学的な判定の後は算術演算と1回の平方根のみを使うため、この経路は決定的で、O(1)であり、反復ソルバーや三角関数ライブラリに依存しません。半径が等しく中心が一致する場合は無限の解が存在するため、近似せず拒否されます。
送信する内容と返ってくる内容
必須の有限数を6つ提供してください。解析後、サービスは中心間距離dを計算し、半径の和および絶対差と比較して、分離または包含を明示するメッセージで失敗するか、根軸の足と半弦を構成します。例の確認:中心が(0, 0)と(8, 0)で半径がともに5の場合、(4, ±3)付近の2点が得られます。
半径がともに5で中心が10単位離れている場合、中点で外接します。半径の和よりはるかに離れた中心は、円が分離しているとして失敗します。簡単な健全性チェックには無料のブラウザツールを使い、各言語で数値ゲートを再実装せずに一括評価が必要な場合は、スクリプトから同一の契約を呼び出してください。
円と円の交差が実務で登場する場面
中等教育や大学の解析幾何の授業では、与えられた2つの円に共通する点を求める課題が絶えず出題されます。配置を厳密にチェックする信頼できる計算ツールがあれば、宿題の採点が速くなり、包含の場合を忘れたり垂線のオフセットの符号を間違えたりするスプレッドシートのミスも防げます。
マルチラテレーションのスケッチや簡易測量では、既知の基準点からの2つの距離円弧の交差で測点を配置します。両方の候補を決定的な順序で返すことで、作業者は代数を手計算でやり直すことなく、物理的に意味のある側を選べます。
CAD、CNC、ゲームのツールでは、他の2つの中心から一定距離になければならない穴の中心や、応答ベクトルのための接触点を必要とする2つの円形ヒットボックスの衝突といった制約を頻繁に解きます。共有の数値オラクルがあれば、現場メモ、オフィスのスクリプト、エンジンのフィクスチャが同じ根軸の経路で整合します。
データや分析のチームは、ドキュメントの例や合成ベンチマークのために決定的な幾何学フィクスチャを必要とすることがあります。6つの入力、距離、関係タグ、メソッド文字列のエコーにより、それらのフィクスチャは自己記述的になります。
後で円と直線の交差、三次元の球の交差、点サンプルからの円フィッティングが必要になった場合は、この二円ページに詰め込むのではなく、別の検索意図として扱ってください。
活用例
宿題・試験の確認
中心と半径から二円の実数の交点を計算し、交わらない場合は明確に失敗します。
測量・マルチラテレーションのスケッチ
既知の測点からの2つの距離円弧を交差させ、決定的な点の順序で候補位置を復元します。
CAD・ゲームの制約ヘルパー
各ツールで根軸の数学を再実装せずに、2つの円の制約や円形ヒットボックスの接触点を解決します。
よくある質問
料金はいくらですか?
ブラウザツールは無料でローカルに実行されます。無効な入力は課金されません。
2つの円が交わるかどうかはどう判断しますか?
中心間の距離を、半径の和と差に比べます。その間にあれば2点で交わり、どちらかと等しければ1点で接します。半径5の2つの円の中心が10離れていれば接します。
円が交わらないときはどうなりますか?
離れすぎている場合や、一方が他方の内側にあって触れない場合は、答えに見える空のリストではなく、分かりやすいメッセージで知らせます。
2つの円がまったく同じ場合はどうなりますか?
中心も半径も同じ2つの円はすべての点を共有するため、有限の答えがありません。この場合は近似せず、計算を受け付けません。
2つの距離から位置を割り出せますか?
はい。既知の2地点それぞれを中心に、測った距離を半径とする円を描くと、交点が候補の位置になります。順番が決まっているので、正しい側を選べます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
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}'const res = await fetch("https://api.kit.forhosting.com/geom/two-circles-intersection", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"x1": 0,
"y1": 0,
"r1": 5,
"x2": 8,
"y2": 0,
"r2": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geom/two-circles-intersection",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"x1": 0,
"y1": 0,
"r1": 5,
"x2": 8,
"y2": 0,
"r2": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geom/two-circles-intersection", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"x1":0,"y1":0,"r1":5,"x2":8,"y2":0,"r2":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"x1":0,"y1":0,"r1":5,"x2":8,"y2":0,"r2":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geom/two-circles-intersection", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"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"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
解析幾何の宿題を確認する学生、重なり合う円の制約を解くCADやグラフィックスツール、2つの距離円弧で測点を配置する測量スケッチ、決定的な幾何学フィクスチャを必要とするテスト作成者は、無料のブラウザツールと有料APIの両方で同じ純粋な結果を得られます。未入力のフィールド、非正の半径、分離した円、接触のない厳密な包含は、成功した空の解に見える空のリストではなく、明確なinvalid_inputエラーで拒否されます。ネットワーク呼び出しもランダムサンプリングもなく、ご提供いただく6つの数値に対する通常のIEEE-754演算を超える浮動小数点の予期せぬ動作もありません。
平面上で2つの円がどのように交わるか
非常に大きな座標はIEEE-754倍精度の範囲をオーバーフローする可能性があります。非有限の中間値は、JSONでInfinityを返すのではなく、明確なメッセージで失敗します。
送信する内容と返ってくる内容
cx1、cy1、radius1、center1_x、および2つ目の円に対応する名前などの短いエイリアスも受け付けるため、フォームのラベルを簡潔に保ちながらハンドラーを分岐させずに済みます。欠落フィールド、空文字列、非数値テキスト、NaN、Infinity、非正の半径はinvalid_inputで拒否され、課金されません。成功時、JSONレスポンスはpointsとして、安定したシリアライズのために丸められたx・yを持つ1個または2個のオブジェクトの配列、配列の長さに等しいcount、intersect・tangent_external・tangent_internalのいずれかに設定されたrelation、距離d、正規化された6つの入力のエコー、そしてtwo_circles_radical_axisに設定されたmethodを返すため、ログや教育用UIがアルゴリズムを文書化できます。この契約は安定したJSONであり、単体テスト、宿題チェッカー、円のペアを交点にマッピングするバッチパイプラインに適しています。APIの料金は、成功した項目あたり$0.002という公開された基本価格です。
円と円の交差が実務で登場する場面
この機能は純粋なparseエンジンであるため、検証の失敗で残高は消費されず、成功した実行は1項目あたり$0.002のままです。
技術的な質問
この計算ツールはどの公式を使いますか?
根軸構成です。中心間距離d、オフセットa = (r1² − r2² + d²)/(2d)、半弦h = √(r1² − a²)、その後±の垂直オフセットを用います。レスポンスにはmethod: "two_circles_radical_axis"が含まれます。
円が交わらない場合はどうなりますか?
分離している場合(dが半径の和より大きい)、または一方が他方を接触なく完全に含む場合(dが|r1 − r2|より小さい)、リクエストはinvalid_inputで失敗し、配置を説明するメッセージが返されます。
接する円は成功として扱われますか?
はい。外接と内接は、relationがtangent_externalまたはtangent_internalの1点を返します。
2つの円が同一の場合はどうなりますか?
中心が同じで半径が等しい場合、交点は無限に存在します。そのケースは有限のリストをでっち上げるのではなく、invalid_inputで拒否されます。