三角形の外心計算ツール|3頂点の座標から外接円の中心を算出
三角形の3つの頂点から等しい距離にある点を求めます。頂点が (0, 0)、(4, 0)、(0, 3) なら外心は (2, 1.5) で、どの直角三角形とも同じく斜辺の中点になります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- Ax
- 0
- Ay
- 0
- Bx
- 4
- By
- 0
- Cx
- 0
- Cy
- 3
- X
- 2
- Y
- 1.5
外心は3つの角から等距離にある点であり、辺の垂直二等分線が交わる位置に求まります。6つの数値を送れば2つの数値が返ってきます。共線な入力は受け付けられず、曖昧さもありません。
外心とは何か、なぜ重要なのか
退化していない三角形には、3つの頂点すべてを通る円がちょうど1つ存在し、これを外接円と呼びます。その円の中心が外心であり、3つの頂点すべてから同じ距離にある平面上の唯一の点です。この性質だけで、外心はあらゆる場面に登場します。
CADで三角形の部品の回転軸を決める際の自然な選択肢であり、「3つの町に等しく届くようにアンテナをどこに置くか」という問いへの答えでもあり、さらにドロネー三角形分割の構成要素でもあります。ドロネー分割では、どの頂点も他の三角形の外接円の内部に入らないように三角形が選ばれます。
座標の計算方法
外心は、辺の垂直二等分線の交点です。代数的には、点 U = (x, y) が中心となるのは、2(B−A)·U = |B|² − |A|² かつ 2(C−A)·U = |C|² − |A|² が成り立つときであり、ここで A、B、C は3つの頂点です。分母は三角形の符号付き面積に比例するため、三角形の面積がゼロでない限り、方程式には一意の解があります。
この手法は反復近似ではなく直接の公式であるため、結果は決定論的です。浮動小数点の誤差がマシン間に持ち越されないよう、結果は小数点以下10桁に丸められます。
活用例
等距離の施設配置
倉庫、アンテナ、待ち合わせ場所など、3つの地点から等しい距離にある点を、それらの座標を3つの頂点として入力して求めます。
幾何学およびCADパイプライン
ドロネー三角形分割やメッシュ生成の一環として、三角形ごとに1回の決定論的な呼び出しで外心を一括計算します。
宿題や教材の確認
解析幾何学の演習問題を検証します。3つの頂点を貼り付けて、解答集を公開する前に外心の座標を確認します。
よくある質問
料金はいくらですか?
また、このページのブラウザ上で同じコード・同じ出力で無料で実行することもできます。
頂点の順序は結果に影響しますか?
いいえ。 外心は3点の集合に固有の性質であるため、A、B、C のどのような順序でも同じ結果になります。
外心はどこに位置しますか?
鋭角三角形では三角形の内部、直角三角形では斜辺の中点、鈍角三角形では外部に位置します。公式は特別な分岐なしですべての場合を処理します。
結果は決定論的ですか?
はい。 小数点以下10桁に丸められた閉形式の行列式計算であるため、同一の入力はどのマシンでも常に同一の出力を生成します。
3つの頂点が一直線上にある場合はどうなりますか?
その3点を通る円がないため、外心も存在しません。無限に遠い点を返すのではなく、分かりやすいメッセージで入力をお断りします。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/math/circumcenter-of-a-triangle \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"ax":0,"ay":0,"bx":4,"by":0,"cx":0,"cy":3}'const res = await fetch("https://api.kit.forhosting.com/math/circumcenter-of-a-triangle", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"ax": 0,
"ay": 0,
"bx": 4,
"by": 0,
"cx": 0,
"cy": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/circumcenter-of-a-triangle",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"ax": 0,
"ay": 0,
"bx": 4,
"by": 0,
"cx": 0,
"cy": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/circumcenter-of-a-triangle", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"ax":0,"ay":0,"bx":4,"by":0,"cx":0,"cy":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"ax":0,"ay":0,"bx":4,"by":0,"cx":0,"cy":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/circumcenter-of-a-triangle", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"ax": 0,
"ay": 0,
"bx": 4,
"by": 0,
"cx": 0,
"cy": 3
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.circumcenter_of_a_triangle",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
三角形の外心APIは、三角形の3つの頂点の座標を受け取り、その外心、つまり3つの頂点すべてを通る唯一の円の中心のx座標とy座標を返します。ブラウザでの無料実行と有料APIの背後で、同一の決定論的なコードが動作します。
外心とは何か、なぜ重要なのか
外心は三角形の内部(鋭角三角形)、斜辺の中点(直角三角形)、または外部(鈍角三角形)に位置することがありますが、APIは三角形の形状に依拠した推論ではなく垂直二等分線の方程式を直接解くため、3つのすべての場合で正しい点を返します。
座標の計算方法
これは2元連立一次方程式であり、このエンドポイントは行列式の公式による閉形式でそれを解きます。
入力、出力、および共線という境界ケース
ほぼ共線な点も分母に対する小さなイプシロンで検出されます。数値的に面積がゼロの三角形は、実用上の意味を持たないほど遠くに中心を生成してしまうからです。送信するのは ax、ay、bx、by、cx、cy という6つの必須フィールド、すなわち3つの頂点の座標であり、返ってくるのは x と y の2つのフィールド、すなわち外心の座標を持つオブジェクトです。リクエストが幾何学的に失敗する可能性はただ1つ、3点が一直線上にある場合です。このとき3点を通る円は存在しないため、エンドポイントは無限遠の点を返すのではなく、invalid_input エラーで入力を拒否します。この呼び出しは1リクエストにつき$0.002で、単位あたりの追加料金はありません。まったく同じアルゴリズムがこのページ上で無料で動作するため、何千もの三角形に対するバッチパイプラインにエンドポイントを組み込む前に、結果を手で検証することができます。
技術的な質問
具体的に何が返ってきますか?
x と y の2つのフィールドを持つオブジェクトです。これは外心、すなわち3つの頂点を通る円の中心の座標です。半径は返されません。
3点が一直線上にある場合はどうなりますか?
共線な点には外接円が存在しないため、リクエストは invalid_input エラーで拒否されます。ほぼ共線な入力も拒否されます。