オイラーの三角形 OI 距離計算ツール
外接円の半径が10、内接円の半径が3なら、外心と内心の距離の2乗は40で、距離は約6.324555です。2つの半径を入力するだけで、オイラーの不等式を満たしているかも分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 外接円半径(R)
- 10
- 内接円半径(r)
- 3
- 計算モード
- distance
- 中心間距離(d)
- 6.324555
- 中心間距離の二乗(d²)
- 40
三角形の外接円半径 R と内接円半径 r を与えると、オイラーの公式 d = √(R(R − 2r)) によって外心と内心の距離を計算します。
2つの半径だけで決まる距離
どの三角形にも、3つの頂点を通る外接円の中心である外心Oと、3つの辺に接する内接円の中心である内心Iがあります。オイラーの公式は、この2点の距離を2つの半径だけから求めます。距離の2乗は、Rに「Rから2rを引いた値」を掛けたものです。つまり、Rからrの2倍を引き、Rを掛けて平方根を取ります。外接円の半径が10、内接円の半径が3なら、10掛ける4で40となり、距離は約6.324555です。辺の長さや角度は計算に使いません。
不等式から分かること
平方根の中は0以上でなければならないため、この公式はRが2r以上のときにだけ使えます。これがオイラーの不等式で、実際の三角形はすべてこれを満たします。ツールはこの条件を確認し、満たさない半径の組み合わせには印を付けます。外接円の半径が内接円の半径の2倍より小さければ、その半径を持つ三角形はないため、作図の前に測定や入力の間違いに気づけます。境目のRがちょうど2rの場合は正三角形で、OとIが重なり距離は0になります。この場合も丸めで失われず、正しく受け付けます。
活用例
幾何の検証
三角形の O–I 距離を R と r から確認したり、三角形を作図する前に、半径の組がオイラーの不等式を満たすかを判定したりできます。
よくある質問
これは何を計算しますか?
オイラーの公式 d = √(R(R − 2r)) を用いた、三角形の外心と内心の距離 d です。
必要な入力は何ですか?
正の数 R(外接円半径)と r(内接円半径)です。decimals(0〜10 の整数、既定 6)と mode(既定 "distance")は省略可能です。
オイラーの不等式 R ≥ 2r とは何ですか?
外接円の半径は常に内接円の半径の2倍以上であるという関係です。これが成り立つときだけ距離が実数になるので、Rが2rより小さい組み合わせには印を付けて知らせます。
外心と内心の距離が0になるのはどんなときですか?
Rがrのちょうど2倍のときで、これは正三角形に当たり、外心と内心が同じ点になります。この境目の場合も、わずかな丸め誤差で失われないよう正しく受け付けます。
外接円の半径が内接円の半径の2倍より小さいとどうなりますか?
その2つの半径を持つ三角形は存在しません。平方根の中が負の数になるためです。結果にはオイラーの不等式が成り立たないことが示され、半径の組み合わせがありえないと分かります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/math/euler-triangle-formula \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"R":10,"r":3}'const res = await fetch("https://api.kit.forhosting.com/math/euler-triangle-formula", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"R": 10,
"r": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/euler-triangle-formula",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"R": 10,
"r": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/euler-triangle-formula", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"R":10,"r":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"R":10,"r":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/euler-triangle-formula", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"R": 10,
"r": 3
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.euler_triangle_formula",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
R ≥ 2r が満たされないときは euler_ok フラグで通知します。ブラウザ内なら無料、API は $0.002 から。
オイラーの O–I 距離
すなわち d² = R(R − 2r) なので d = √(R(R − 2r)) となります。R と r を正の数として送ります。mode は既定で "distance" であり、現在サポートされている唯一のモードです。距離が実数になるのは、まさにこの不等式が成り立つときに限られます。このエンドポイントはオイラーの三角形公式を評価します。これは、三角形の外心 O と内心 I の距離 d を、外接円半径 R と内接円半径 r だけから与えるものです。レスポンスは mode・R・r をそのまま返し、d_squared・d・真偽値 euler_ok を加えます。計算例 R=10, r=3 では、10·(10−6)=40 なので、ツールは d_squared=40 と d≈6.324555 を返します。この公式が注目に値するのは、個々の辺の長さや角度ではなく二つの半径だけに依存する点であり、またオイラーの不等式 R ≥ 2r を直ちに導く点です。
euler_ok フラグとその境界事例
オイラーの不等式 R ≥ 2r は、わずかな許容誤差(R ≥ 2r − 1e-12)を伴って明示的に判定されます。これにより、境界の場合 R = 2r — O と I が一致し d = 0 となる正三角形 — が、浮動小数点のノイズに埋もれて失われることなく受理されます。R < 2r のとき、この半径の組はいかなる実在の三角形にも属し得ないため、例外を送出する代わりに、エンドポイントは euler_ok:false を返し、d と d_squared をともに null に設定します。これは、その組が幾何学的に不可能であることを示す、機械可読でクリーンなシグナルです。不等式が成り立つときは d² = R(R − 2r) を計算し、厳密な境界を丸めから守るために平方根の前に 0 でクランプし、d_squared と d の両方を euler_ok:true とともに返します。これにより、候補となる (R, r) の組を投入し、例外を捕捉することなく有効な三角形を一括で絞り込めます。
入力・丸め・検証
入力は、いかなる算術よりも前に検証されます。ボディはオブジェクトでなければならず、R と r はともに 0 より厳密に大きい有限の数、decimals は 0 以上 10 以下の整数でなければなりません。そうでなければ、不正なフィールド名を示す型付きの invalid_input エラーが返ります。"distance" 以外の mode はいずれも invalid_input として拒否されます。二つの数値出力 d と d_squared は、生の値それぞれに一度だけ適用される half-up ルールで丸められ、decimals の既定は 6 です。重要な点として、d_squared は丸められた d からではなく R(R − 2r) から直接丸められるため、報告された d を二乗しても、低精度では報告された d_squared を正確には再現しません。これは順方向のみです。 R と r から d を計算するのであって、d から三角形を再構成するわけではありません。
連携の活用例
オイラーの定理の指導
d² = R(R − 2r) と R ≥ 2r を示せます。R = 2r で d = 0 となる正三角形の極限も含みます。
半径の組の絞り込み
(R, r) 候補の大きなリストをふるいにかけ、euler_ok:false を使って幾何学的に不可能な組を例外処理なしで除外できます。
技術的な質問
R が 2r より小さい場合は?
実在する三角形が存在しないため、レスポンスは euler_ok:false を設定し、d と d_squared を例外を送出せずに null として返します。
R = 2r のときは何が起きますか?
それは正三角形の場合です。外心と内心が一致するため d = 0 となり、判定にわずかな許容誤差を設けているおかげで euler_ok は true になります。
無料ですか?
ブラウザでは tier A widget として無料です。API は成功した呼び出し 1 回あたり $0.002 かかり、失敗したタスクは課金されません。