円と直線の交点
直線が円と交わる位置が分かります。原点が中心で半径5の円と、(−10, 0)と(10, 0)を通る直線は、(−5, 0)と(5, 0)で交わります。交わる、接する、離れるのどれかも表示します。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- Cx
- 0
- Cy
- 0
- 抵抗(Ω)
- 5
- X1
- -10
- Y1
- 0
- X2
- 10
- 数量
- 2
- 判別式
- 40,000
平面上の円と直線は、2点で交わる(割線)、ちょうど1点で接する(接線)、または交わらないことがあります。古典的な解析幾何は問題を二次方程式に帰着します。2点で直線をパラメータ化し、円の方程式に代入して判別式を読みます。宿題を確認する学生、衝突接触を置くゲーム開発者、スケッチ制約を検証するCAD支援、視線ヒットを復元する測量補助、競技の解答者は、スケッチだけでなくテストに固定できる安定した接触座標を必要とします。
円と直線の交点の意味と検索される理由
ユークリッド平面幾何では、中心C・半径rの円はCから距離rの点の集合です。異なる2点A, Bを通る無限直線は、Aに方向ベクトルB−Aの実数倍を加えた点の集合です。交点は両方の記述を同時に満たす点です。
パラメータ直線を円の方程式に代入すると、パラメータtに関する二次式が得られ、判別式が場合を決めます。正なら異なる2実根(割線)、0なら重根(接線)、負なら実根なし(非交差)です。検索意図は「円と直線の交点」「接線」「割線の座標計算機」などの語句に集まります。
順序付きpoints配列はCIでのdiff、大きなパイプライン、メモへのコピーを容易にします。円と円、または線分のみの補助と異なり、本ページは無限直線と1円だけに焦点を当て、幾何が交わらない場合も報告します。
実務での使い方、制限、料金、提供経路
宿題の採点、衝突マーカーの配置、スケッチ確認で直ちに接触を調べたいときは、計算機代数系を入れずにブラウザツールをご利用ください。負の判別式を含む検証失敗は残高を消費しません。座標は通常のCAD・教室図形に適した大きな絶対境界内の任意の有限数でよく、応答座標はご利用中の単位系を共有します。
直線は無限として扱われ、交点は定義2点間の線分の外にあってもよく、これは解析幾何の古典的モデルと多くのレイ型照会に一致します。言語モデルも外部幾何サービスも乱数もなく、CIや再現可能な教材に固定して安全です。円と円の交点、線分クリッピング、三角形ソルバが必要な場合は専用ページをご利用ください。
本機能は円と無限直線のみに焦点を当てます。
活用例
宿題・試験での円と直線の演習
学生と採点者は、中心・半径・直線上2点から接点または割線点を確認し、直線が円に届かない場合は明確なエラーを得ます。
よくある質問
計算機はどの公式を使いますか?
2点で直線をパラメータ化し、(x−cx)²+(y−cy)²=r²に代入し、判別式で二次式を解きます。
2点間の有限線分を使いますか?
いいえ。 2点は無限直線だけを定義します。交点は線分の外にあってもよく、古典的解析幾何と一致します。
直線が円に接しているかはどう分かりますか?
直線が円に触れるだけのとき、計算のもとになる2次方程式は重解を1つ持ちます。計算機はそのとき点を1つだけ返し、2つの交点ではなく接点であることを示します。
直線が円と交わらないとどうなりますか?
判別式が負になり、実際の交点はありません。計算機は座標を作り出さずに、直線と円が交わらないことをお知らせします。
直線を決める2点が同じではいけないのはなぜですか?
同じ2点では向きが決まらず、直線が1本に定まらないためです。計算機は計算の前にこの場合を受け付けないので、異なる2点を入力してください。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/geom/circle-line-intersection \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"cx":0,"cy":0,"r":5,"x1":-10,"y1":0,"x2":10,"y2":0}'const res = await fetch("https://api.kit.forhosting.com/geom/circle-line-intersection", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"cx": 0,
"cy": 0,
"r": 5,
"x1": -10,
"y1": 0,
"x2": 10,
"y2": 0
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geom/circle-line-intersection",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"cx": 0,
"cy": 0,
"r": 5,
"x1": -10,
"y1": 0,
"x2": 10,
"y2": 0
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geom/circle-line-intersection", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"cx":0,"cy":0,"r":5,"x1":-10,"y1":0,"x2":10,"y2":0}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"cx":0,"cy":0,"r":5,"x1":-10,"y1":0,"x2":10,"y2":0}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geom/circle-line-intersection", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"cx": 0,
"cy": 0,
"r": 5,
"x1": -10,
"y1": 0,
"x2": 10,
"y2": 0
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geom.circle_line_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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
本機能は7つの数—円のcx, cy, rと無限直線上の異なる2点x1, y1, x2, y2—を受け取り、各フィールドが有限で半径が正であることを検証し、二次式を解きます。判別式が非負なら構造化JSONで1点または2点を返し、直線が円に届かない、入力が不完全または退化している場合はinvalid_inputで直ちに失敗し、失敗した検証は課金されません。
入力検証と二次判別式の解き方
半径は厳密に正でなければなりません。直線の2点は異なる必要があります。長さ0の方向は一意の無限直線を定義できず、平方根の前に拒否されます。判別式deltaはb²−4acです。deltaが小さな数値イプシロンを超えて負なら、直線が円に交わらないため明確な非交差メッセージで失敗します。deltaが実質0ならtangentをtrueとして接点を1点返します。行列逆も外部幾何サービスもなく、Worker上の算術のみです。必須7フィールドcx, cy, r, x1, y1, x2, y2を含むJSON本体を送ってください。各フィールドは有限数である必要があります(JSON数または数値文字列を受け付けます)。エンジンは欠落フィールド、空文字列、NaN、無限大をinvalid_inputで拒否し、失敗呼び出しは課金しません。解析後、アルゴリズムは方向D=(x2−x1, y2−y1)とオフセットF=(x1−cx, y1−cy)を形成し、二次係数a=D·D、b=2F·D、c=F·F−r²を構築します。結果は安定した小数精度に丸められ、同じ幾何は常に同じJSONになります。応答は7入力をエコーし、count, tangent, discriminant, pointsを返し、methodをquadratic_discriminantに設定します。
実務での使い方、制限、料金、提供経路
スクリプト、教材プラットフォーム、ゲームエディタ、メッシュツール、ノートブックが同一契約下で多くの円-直線ペアに安定JSONを必要とするときはAPIをご利用ください。成功した各リクエストは$0.002の課金項目です。結果は完全に決定的で、同じ7数は常に同じ点と判別式フィールドを生みます。コンテスト採点、スプライト衝突、CAD制約デモ、明示的二次式を好む前処理にendpointを接続できます。
連携の活用例
幾何・衝突テスト用の決定的fixture
単体テストや対話スケッチdemoを供給するパイプラインは、各言語で二次式を再実装せず、純交点オラクルを呼び出せます。
CAD・測量・ゲームの接触アンカー
構築線が円弧と交わる位置にマーカーや衝突原点を置くツールは、インポート用の構造化JSONとして点を取得できます。
技術的な質問
このAPIで円と直線の交点を求めるには?
cx, cy, r, x1, y1, x2, y2を含むJSON本体をgeom.circle_line_intersectionへ送ってください。直線が円に交わるとき1点または2点を返します。
直線が円と交わらない場合はどうなりますか?
判別式が負(実交点なし)のためinvalid_inputで失敗します。こうした検証失敗は課金されません。
円と直線の交点計算機は無料ですか?
ブラウザツールはデバイス上で無料です。API呼び出しは成功項目ごとに$0.002の前払いKIT残高を使い、検証失敗は課金されません。