AAA三角形計算機 ― 3つの角と1つの辺を正弦定理で解く
角が50度、60度、70度で、50度の角に向かい合う辺が8なら、残りの辺は約9と10弱になります。3つの角と1辺を入れるだけで解け、角の合計が180度でなければ実際の合計を知らせます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 角度 a
- 50
- 角度 b
- 60
- 角 c
- 70
- 辺 a
- 8
- 辺 b
- 9.0441269988
- 辺 c
- 9.8134527752
- 角度の単位
- deg
AAA三角形計算ツールは、三角形の3つの内角と既知の1辺の長さを受け取り、残り2辺の長さを返します。3つの角だけでは三角形の形状は決まっても大きさは決まりません——同じ角度を共有する相似な三角形は無限に存在するため、1辺が不足しているスケールを補います。このソルバーはまず、入力された3つの角の合計が180度になるかを確認し、ならない場合は明確なエラーで入力を拒否します。その後、正弦定理を適用して、安定した浮動小数点精度で未知の各辺を計算します。
なぜ3つの角だけでは不十分なのか
幾何学の授業で学ぶように、3つの角が同じ2つの三角形は相似です。形状は同じでも、大きさはどのようなものにもなり得ます。30-60-90の三角定規と30-60-90の道路標識は、まったく同じ三角法に従い、スケールだけが異なります。
だからこそAAA三角形計算ツールは、3つの角に加えて1辺の長さを求めます。角度は三角形のすべての比率を固定し、既知の辺がその比率を絶対的な長さに変換します。これがなければ「他の辺の長さは?」
という問いには正解が無限にあり、これがあれば答えはただ1つです。これはASAやAASの場合との違いでもあります。ASAやAASでは第3の角が与えられた2角から導かれますが、ここでは3つすべてをご自身で指定するため、検証はご自身、そしてこのツールの最初の仕事になります。
屋根の勾配、土地の境界、カメラの視野を測る場合、どの辺よりも先に分度器や設計図から3つの角すべてが分かることが多いため、AAAのケースは実務で頻繁に登場します。
正弦定理が辺を導き出す仕組み
角度が検証されたら、計算は正弦定理の直接的な適用です。任意の三角形では、各辺をその対角の正弦で割った値が同じ比率になります。角Aの対辺がaであれば、その共通比は a / sin(A) です。
他の辺はすべて、その比率に自身の対角の正弦を掛けたものなので、b = a · sin(B) / sin(A)、c = a · sin(C) / sin(A) となります。ソルバーはこれらを倍精度で評価し、結果を小数点以下10桁に丸めるため、出力は安定しておりマシン間で再現可能です。同じ入力からは常にバイト単位で同一の出力が得られます。
角度は度で受け取り度で返します。図面、分度器、測量機器が度で報告するからです。各角は0度より大きく180度未満でなければならず、既知の辺は正の有限値である必要があります。
縮退した不可能な入力は三角法が実行される前に拒否されるため、存在し得ない三角形から計算された、もっともらしい答えを受け取ることはありません。
検証:角度の合計は厳格なゲート
この機能の決定的な特徴は、不整合な入力を拒否することです。小さな数値許容誤差が浮動小数点の表現ノイズを吸収しますが、人間が誤りと見なすものは拒否されます。これは見た目以上に重要です。
悪い角度をリスケーリングして黙って「修正」すれば、お客様が求めていない三角形の辺が生成されてしまい、建設、機械加工、航海ではその種の静かな訂正が高額なミスの出荷につながります。両経路はまったく同じ決定的なコードを実行するため、手作業でテストした結果が本番の統合で受け取る結果と一致します。
活用例
測量した三角形をスケールする
測量士が土地の3つの角すべてと到達可能な1辺を測定すれば、残りの境界の長さが1回の呼び出しで返ります。
設計図面を検証する
部品の加工前に、CAD図面上の3つの角の合計が実際に180度になるかを確認します。不正な入力は黙って修復されず、拒否されます。
再現可能な答えで三角法を教える
学生は、出力が小数点以下10桁まで安定している決定的なソルバーに照らして、正弦定理の宿題を確認できます。
よくある質問
料金はいくらですか?
同じソルバーがこのページのブラウザ内で無料・無制限に動作します。
3つの角がすべて分かっているのに、なぜ辺が必要なのですか?
3つの角は三角形の形状を決めますが、大きさは決まりません。それらを共有する相似な三角形は無限に存在します。1辺の長さがスケールを与え、残りの2辺を計算できるようにします。
角度は度ですか、ラジアンですか?
度です。 各角は0より大きく180未満でなければならず、3つの合計はちょうど180である必要があります。
結果の精度はどのくらいですか?
辺は倍精度の正弦定理で計算され、小数点以下10桁に丸められるため、繰り返しの呼び出しや異なるマシンでも同一の値が返ります。
3つの角の合計が180度にならないとどうなりますか?
計算はせず、実際の合計を示してお知らせします。丸めた測定値の179.9度や打ち間違いの181度でも、もっともらしい答えを出さずにそこで止まります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/math/aaa-triangle \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"angle_a":50,"angle_b":60,"angle_c":70,"side_a":8}'const res = await fetch("https://api.kit.forhosting.com/math/aaa-triangle", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"angle_a": 50,
"angle_b": 60,
"angle_c": 70,
"side_a": 8
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/aaa-triangle",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"angle_a": 50,
"angle_b": 60,
"angle_c": 70,
"side_a": 8
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/aaa-triangle", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"angle_a":50,"angle_b":60,"angle_c":70,"side_a":8}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"angle_a":50,"angle_b":60,"angle_c":70,"side_a":8}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/aaa-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": 50,
"angle_b": 60,
"angle_c": 70,
"side_a": 8
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.aaa_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つの角の合計が180度以外——丸められた測定値の179.9、入力ミスの181、計算ミスの150など——であれば、実際の合計を明示したエラーでリクエストは失敗し、課金もされません。エラーレスポンスは標準の invalid_input コードを使うため、自動化パイプラインがプログラムで捕捉し、修正へ回すことができます。API利用では1リクエストあたり $0.002 かかり、ブラウザでは無料・無制限です。
技術的な質問
角度の合計が180度にならない場合はどうなりますか?
実際の合計を報告する invalid_input エラーでリクエストが失敗します。結果は生成されず、呼び出しも課金されません。
どの辺を指定すればよいですか?
angle_a の対辺を side_a として渡してください。別の辺が分かっている場合は、既知の辺が angle_a の対辺になるよう角度のラベルを付け替えてください。返される辺は入力した辺と同じ単位になります。