球面過剰の計算ツール
球面三角形の3つの角を入れると、球面過剰と面積、球全体に占める割合が分かります。角が1.2、1.1、1ラジアンで半径1の球なら、球面過剰は0.158407ラジアン、つまり9.076072度です。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- A
- 1.2
- B
- 1.1
- C
- 1
- 球の半径(R)
- 1
- 球面過剰(ラジアン)
- 0.158407
- 球面過剰(度)
- 9.076072
- 面積
- 0.158407
- 球面に占める割合
- 0.012606
3 つの内角 A、B、C から球面三角形の球面過剰を計算します。過剰量をラジアンと度で返すほか、半径 R の球面上での三角形の面積、そして球全体に対して覆う割合を返します。
Girard の定理: E = A + B + C − π
球面上では三角形の内角の和が π ラジアンを超え、その超過分が球面過剰 E = A + B + C − π です。これが Girard の定理であり、この機能が評価する中核となる恒等式です。3 つの内角 A、B、C を球の半径 R とともに渡します。
角の和が常にちょうど π になり面積の情報をもたない平面三角形とは異なり、球面三角形の過剰量は囲む面の大きさに正比例します。だからこそ 1 回の引き算で結果全体を捉えられるのです。
面積と球に対する割合の出力
過剰量からこのツールはさらに 2 つの量を導きます。半径 R の球面上での三角形の面積は area = R² · E であり、したがってラジアンで表した過剰量は単位球上での面積そのものになります。ラジアンの過剰量と度の過剰量(E·180/π)の両方が返るため、都合のよい単位で結果を読み取れます。
検証と、それが課す物理的制約
入力は型だけでなく幾何に照らして検証されます。A、B、C は有限の数でなければならず、度からラジアンへの変換後は各角度が 0 と π の間に厳密に収まっていなければなりません。重要なのは過剰量が厳密に正でなければならない点です。
A + B + C が π を超えない場合、三角形は退化しているか平面的であり、ツールは 0 や負の面積を報告する代わりに "exceso no positivo" で拒否します。これらの検査により、返されるすべての面積が物理的に意味をもちます。
活用例
測地学と地図作成
地球表面上の測量三角形の実測角から真の面積を求め、長い基線では平面三角法が無視してしまう曲率を補正します。
GIS と球面多角形の面積
領域を球面三角形に分割し、その過剰量から導いた面積を合計して、任意の半径 R の球上で陸地、海洋、カバレッジの面積を計算します。
航法と天文学の指導
再現可能な数値で Girard の定理を示し、角の和が π からずれる量がそのまま面積と、囲む球の割合に対応することを説明します。
よくある質問
球面過剰とは何ですか?
球面三角形の内角の和が π ラジアンを超える量のことです。Girard の定理により E = A + B + C − π で表されます。
面積はどのように計算されますか?
area = R² · E で、E はラジアンで表した過剰量です。
角度を度で入力できますか?
できます。初期設定はラジアンですが、度を選ぶと各角に π/180 を掛けてから球面過剰を計算します。結果の球面過剰は、ラジアンと度の両方で表示されます。
球面三角形が受け付けられないのはなぜですか?
各角は0より大きくπより小さい、つまり0度から180度の間にある必要があり、3つの和がπを超えなければなりません。そうでない三角形は平らか退化していて、正の面積を持たないためです。
三角形は球全体のどれくらいを占めますか?
球面過剰を球全体の立体角である4πで割った値です。角が1.2、1.1、1ラジアンなら、半径に関係なく表面の0.012606を占めます。面積そのものは半径の2乗に比例して大きくなります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/math/spherical-excess \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"A":1.2,"B":1.1,"C":1,"R":1}'const res = await fetch("https://api.kit.forhosting.com/math/spherical-excess", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"A": 1.2,
"B": 1.1,
"C": 1,
"R": 1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/spherical-excess",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"A": 1.2,
"B": 1.1,
"C": 1,
"R": 1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/spherical-excess", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"A":1.2,"B":1.1,"C":1,"R":1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"A":1.2,"B":1.1,"C":1,"R":1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/spherical-excess", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"A": 1.2,
"B": 1.1,
"C": 1,
"R": 1
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.spherical_excess",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
Girard の定理: E = A + B + C − π
角度は既定のラジアンで与えるか、angle_unit を "deg" に設定して度で与えられ、度の場合は過剰量を求める前に各角度が x·π/180 で変換されます。
面積と球に対する割合の出力
また sphere_fraction = E / (4π)、すなわち球面全体(その立体角は 4π ステラジアン)のうち三角形が覆う割合も報告します。各フィールドは指定した decimals に half-up で丸められ、既定は小数第 6 位です。同梱の例では A = 1.2、B = 1.1、C = 1 ラジアンと R = 1 を用い、過剰量 0.158407 rad、9.076072°、面積 0.158407、sphere_fraction 0.012606 を返します。
検証と、それが課す物理的制約
0 や π、あるいはそれを超える角度は正しい球面三角形を成さず、型付きの invalid_input エラー "ángulos fuera de rango" を返します。半径 R は正の有限の数、angle_unit はちょうど "rad" か "deg"、decimals は 0 から 10 の整数でなければなりません。
技術的な質問
角度を度で入力できますか。
はい。angle_unit を "deg" に設定すると、過剰量を計算する前に A、B、C が x·π/180 で変換されます。既定の単位はラジアンです。
なぜ invalid_input エラーが出たのですか。
各角度は変換後に 0 と π の間に厳密に収まり、R は正、過剰量は正でなければなりません。そうでなければ三角形は無効です。
無料ですか。また自動化はどうすればよいですか。
tier A の widget はブラウザ上で無料で動作します。決定的な API はバッチの測地処理向けに同じ JSON を 1 回あたり $0.002 で返します。