仰角計算機
高さの差が50、水平距離が100の目標は、仰角26.565051177078°に見えます。地上の距離と高さの差を入力すれば、視線の角度が仰角・俯角・水平の区別つきで分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 水平距離
- 100
- 高さ
- 50
- 角度(度)
- 26.5650511771
- 符号付き角度(度)
- 26.5650511771
- 角度(ラジアン)
- 0.463647609
- 符号付き角度(ラジアン)
- 0.463647609
平らな地面に立ち、塔・木・航空機を見上げるとき、水平な視線と対象への線がなす角が仰角です。崖やバルコニーから見下ろすと俯角になります。この計算機は正の水平距離と符号付きの高低差を受け取り、直角三角形でこれらの角を定義する逆正接の公式を適用し、度数とラジアンでの大きさと、仰角・俯角・水平のいずれかの種別ラベルを返します。観測者が目標の真下または真上にいると角が未定義になるためです。
仰角と俯角が直角三角形から導かれる仕組み
観測者から目標の真下または真上までの水平距離を底辺、観測者の目の高さと目標との垂直高低差を対辺とする直角三角形を想像してください。底辺と斜辺のあいだで観測者側にある角が、まさに仰角または俯角です。記号では、その角の正接は対辺/隣辺に等しいので、角そのものは高さを水平距離で割ったものの逆正接です。
高さが正なら観測者は上を向き結果は仰角、負なら下を向き大きさは俯角、零なら視線は水平で角は零です。ラジアンから度への変換は百八十を円周率で割ったものを掛けます。比のあとの量はすべて単一の逆正接なので経路は完全に決定的です。
同じ有限の水平距離と高低差は、浮動小数点の丸めの範囲内で常に同じ角を生みます。教室の定番確認には一対一の比で四十五度、五十対百で約二十六・五七度、高さ零で符号付き・絶対の両方の角が零の水平、があります。本サービスは反復せず、大気モデルをサンプリングせず、級数近似もしません。
現場で仰角と俯角が現れる場面
中等教育の三角法や微積分入門では、地面距離と高さだけが分かっている建物への仰角や灯台からの俯角を求める問題が絶えず出ます。零距離を厳密に拒否する信頼できる計算機は採点を速くし、空セルで割るような表計算ミスを除きます。
野外科学や野外教育ではクリノメーターで木の高さや崖の深さを見積もり、測定した底辺と高さからクリノメーター読取を逆算して解答キーにすることがよくあります。測量・建築・施工では杭打ちや仮囲いの前に見通し線の角度がすぐ必要で、共有の数値オラクルが現場メモと事務スクリプトを揃えます。
ゲームやシミュレーションのチュートリアルは、目標へのカメラピッチや見上げ・見下ろし角のUIオーバーレイに、同じatan(上昇/水平)経路を使います。データと分析チームは文書例や合成ベンチマーク用に決定的な幾何フィクスチャを要することがあり、両入力・絶対角と符号付き角・kind・method文字列をエコーすると自己説明的になります。
のちに一辺と鋭角からの完全な直角三角形ソルバー、比だけの逆余弦、地球曲率補正の見通し線が必要なら、この仰角計算機のランディングを過負荷にせず、別の検索意図として扱ってください。
活用例
野外科学のワークシート
屋外実験の解答キーを作るとき、測定した底辺と高さからクリノメーター型の角を復元します。
よくある質問
この計算機は何を求めますか?
正の水平距離と高低差を与えると、高さ/距離の逆正接により仰角(height > 0)または俯角(height < 0)を度数とラジアンで返します。
高さは負でもよいですか?
はい。 負の高さは目標が観測者より下にあることを意味し、kindはdepression、符号付き角は負になります。高さ零はkind levelと角零を返します。
高さ50、距離100のときの角度はいくつですか?
仰角は26.565051177078度です。高さを水平距離で割って逆正接を求めるので、2つの値が同じ単位であれば、どの単位でも使えます。
水平距離が0だとなぜ計算できないのですか?
距離が0だと目標の真下か真上に立っていることになり、0で割る必要があるため角度が定義できません。距離は長さを表すので、負の値も受け付けません。
結果はラジアンでも表示されますか?
はい。角度を度とラジアンの両方で示し、教科書の答え向けの大きさだけの値と、高さに合わせた符号付きの値を表示します。見上げるときは正、見下ろすときは負です。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/trig/angle-of-elevation \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"horizontal_distance":100,"height":50}'const res = await fetch("https://api.kit.forhosting.com/trig/angle-of-elevation", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"horizontal_distance": 100,
"height": 50
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/trig/angle-of-elevation",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"horizontal_distance": 100,
"height": 50
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/trig/angle-of-elevation", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"horizontal_distance":100,"height":50}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"horizontal_distance":100,"height":50}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/trig/angle-of-elevation", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"horizontal_distance": 100,
"height": 50
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "trig.angle_of_elevation",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
宿題を確認する生徒、見通し線を見積もる測量者、野外教材を作る教育者、決定的な幾何フィクスチャを組む開発者は、入力のエコー、符号付き・絶対角、公式を記録するmethod文字列を含む安定したJSON結果を得られます。水平距離が零の場合は明確なinvalid_inputエラーで拒否されます。無料のブラウザツールと有料APIは同一の純粋関数を共有するため、授業デモと自動パイプラインが同じ入力で静かに食い違うことはありません。
仰角と俯角が直角三角形から導かれる仕組み
検証し、閉形式を適用し、JSONのgoldensと単体テスト向けに安定した精度へ出力を丸めるだけです。
送信する内容と返ってくる内容
必須の有限数を二つ渡します。零は零除算で角が未定義になるため明示的に禁止され、負の距離も、距離が常に長さであって符号付きオフセットにならないよう拒否されます。素早い確認には無料ブラウザツールを使い、大量の仰角復元が必要なら各言語で零距離ゲートを再実装せず、同一契約をスクリプトから呼び出してください。horizontal_distance(別名 distance, horizontal, run, adjacent, d)は任意の一貫した長さ単位での厳密に正の地面長、height(別名 rise, vertical, height_diff, delta_h, h)は観測者に対する目標の符号付き垂直オフセットです。欠落フィールド、非数値文字列、NaN、Infinityはinvalid_inputで拒否され課金されません。解析後、サービスはhorizontal_distanceが零より大きいことを確認します。成功時、JSON応答は正規化された距離と高さをエコーし、教科書の答えに適した非負の大きさとしてangle_degとangle_radを返し、同じ大きさで高さに合わせた符号のsigned_angle_degとsigned_angle_radを返し、kindをelevation・depression・levelのいずれかに設定し、unit_anglesをdegにし、ログや教材UI向けの文書化としてmethodに文字列atan_height_over_runを含めます。例:距離百・高さ五十で約二十六・五七度の仰角、距離十・高さマイナス十で四十五度の俯角と負の符号付き角、距離零はhorizontal_distanceを名指しするエラーで失敗します。契約は単体テスト・宿題チェッカー・一括パイプライン向けの安定JSONです。
現場で仰角と俯角が現れる場面
この機能は純粋な解析エンジンのため、API料金は成功一件あたり公開ベースの$0.002で、検証失敗は残高を消費しません。
連携の活用例
宿題・試験の確認
地面距離と高さから仰角または俯角を計算し、水平距離が零の場合は明確なinvalid_inputエラーで拒否します。
見通し線・ゲーム補助
水平距離と高低差から、ブラウザとAPIで同じatan経路によりカメラまたは観測者のピッチを得ます。
技術的な質問
どの公式を使いますか?
θ = arctan(height / horizontal_distance)。絶対のangle_degが大きさ、signed_angle_degは仰角で正・俯角で負です。
水平距離が零だとどうなりますか?
リクエストはinvalid_inputで失敗します。水平距離が零のとき角は未定義であり、エラーメッセージはhorizontal_distanceフィールドを名指しします。
料金はいくらですか?
ブラウザツールは無料でローカル実行です。APIリクエストは前払いKIT残高を成功一件あたり$0.002で使用し、無効入力は課金されません。