三角形の外角計算機
三角形の外角APIは、三角形の3つの内角を度数法で受け取り、各頂点の外角(三角形の一辺と隣接する辺の延長線がなす角)を返します。計算を行う前に、3つの角がすべて正であり、合計がちょうど180度であることを検証します。そのため、結果は常に実在する三角形のものとなり、不正な入力はもっともらしい数値へ黙って変換されるのではなく、拒否されます。
無料で実行
外角とは何か
三角形の各頂点では、一方の辺が到着し、もう一方の辺が出ていきます。到着する辺を頂点の先までまっすぐ延長すると、その延長線と出ていく辺のなす角が外角です。外角は同じ頂点の内角と互いに補角の関係にあり、これがこの機能の計算のすべてです。各外角は180度から隣接する内角を引いた値です。60度の内角は120度の外角を生み、直角はもう一つの直角を生み、5度という非常に鋭い内角は175度という非常に鈍い外角を生みます。どんな三角形でも3つの内角の和は常に180度なので、3つの外角の和は常に360度になります。これは、三角形の周りを歩きながら各角で方向転換したときに回る一周と同じです。三角形の外角計算機は、個々の角とともに両方の合計も返すため、この不変条件が出力に明示され、仮定に留まりません。
計算前に入力を検証する理由
引き算が失敗することはないため、検証のない計算機は存在しえない三角形の外角を平気で報告してしまいます。90度、90度、90度を与えれば、単純な算術はどこにも閉じない図形に対して90度の外角を3つ返します。数字がもっともらしく見える分、これはエラーより悪い結果です。このエンドポイントはまず幾何学の条件を確認します。各角は有限で正の度数であり、180度未満でなければなりません。三角形の頂点はゼロにも平らにもなれないからです。そして3つの角の合計は、厳密な浮動小数点の許容誤差内で180度でなければなりません。いずれかの検査に失敗した場合、リクエストは無効な入力として拒否され、問題のフィールドまたは実際の合計を示すメッセージが返されます。拒否されたリクエストは課金されません。この検証があるからこそ、下流でも結果を信頼できます。このAPIから外角を受け取るパイプラインは、その背後にある内角が真正の三角形を表していたと確信できるのです。
呼び出し方と返される内容
3つの内角を angle_a、angle_b、angle_c として、度数法で数値または数値文字列で送信してください。a、b、c や alpha、beta、gamma といった一般的なエイリアスも利用できます。レスポンスは内角をそのまま返し、同じ頂点順で3つの外角を示し、内角と外角の合計も含みます。すべて小数点以下12桁に丸められるため、JSONはマシン間でバイト単位で安定し、テストで安全に比較できます。単位換算の設定は不要で、度で入力すれば度で出力されます。宿題のチェッカー、CADの前処理、幾何学のチューターにとって、契約が一目で分かる形です。同じ決定論的ソルバーが、このページのブラウザでは無料で、有料APIではリクエストごとに $0.002 で動作します。試行中に見える数値は、本番の呼び出しが返す数値とまったく同じです。データは保存されません。角は読み取られ、検証され、回答され、忘れられます。
活用例
幾何学の宿題を1回の呼び出しで確認
3つの内角が有効な三角形をなすかを確認し、手で引き算をやり直すことなく各外角を取得できます。
CADパイプラインでポリゴンデータを前処理
不正な三角形の定義がメッシュビルダーに届く前に拒否し、回転角をモデルとともに保存します。
幾何学チューターやクイズのバックエンドを駆動
三角形の練習問題の外角の答えをプログラムで生成し、無効な問題セットは検証時に捕捉されます。
よくある質問
料金はいくらですか?
リクエストごとに $0.002 です。このページのブラウザでも、APIが使うのと同じソルバーで無料で実行できます。
三角形の外角とは何ですか?
三角形の一辺と、隣接する辺の延長線とのなす角です。各頂点で、180度からその頂点の内角を引いた値に等しくなります。
入力が拒否されたのはなぜですか?
角が欠けているか、数値でないか、正でないか、180度未満でないかのいずれか、または3つの角の合計が180度にならなかったためです。エラーメッセージに失敗した検査が示されます。
外角の合計は常に360度ですか?
はい。内角の合計が180度なので、3つの外角の合計は540度から180度を引いた360度です。レスポンスには両方の合計が含まれるので、ご確認いただけます。
度の代わりにラジアンを渡せますか?
いいえ。契約は度で入力、度で出力です。呼び出す前にラジアンを度に変換してください(180を掛けて円周率で割ります)。
角は保存または記録されますか?
いいえ。入力はメモリ上で処理されて破棄され、計算された角だけが返されます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/math/exterior-angles-of-a-triangle \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"angle_a":60,"angle_b":70,"angle_c":50}'const res = await fetch("https://api.kit.forhosting.com/math/exterior-angles-of-a-triangle", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"angle_a": 60,
"angle_b": 70,
"angle_c": 50
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/exterior-angles-of-a-triangle",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"angle_a": 60,
"angle_b": 70,
"angle_c": 50
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/exterior-angles-of-a-triangle", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"angle_a":60,"angle_b":70,"angle_c":50}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"angle_a":60,"angle_b":70,"angle_c":50}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/exterior-angles-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)リクエスト例
{
"angle_a": 60,
"angle_b": 70,
"angle_c": 50
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.exterior_angles_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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |