仰角から水平距離
高さ50の物体を仰角30°で見上げると、水平距離は86.602540378444です。30°のタンジェントが0.57735026919だからです。長さの単位は自由で、距離は高さと同じ単位で返ります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 高さ
- 50
- 角度 (°)
- 30
- 角度 (rad)
- 0.5235987756
- 角度の正接
- 0.5773502692
- 水平距離
- 86.6025403784
塔・木・建物・崖面などの高さが分かっており、目の高さからその頂部までの仰角を測れる場合、欠けている水平距離は直角三角形の一つの恒等式から決まります。仰角の正接は対辺÷隣辺に等しいため、水平距離は既知の高さを角の正接で割った値になります。本計算機は、一貫した任意の長さ単位の正の高さと、0度と90度の間に厳密に収まる度単位の仰角を受け取り、角をラジアンに変換して閉じた公式を適用し、中間の正接とラジアン角とともに水平距離を返します。
高さと仰角が地表距離をどう決めるか
鉛直の辺が目の高さより上の既知の物体高さで、観測者側の角がクリノメーター・セオドライト・宿題用分度器で測った仰角である直角三角形を思い浮かべてください。その底辺が、立ち位置から物体頂部の真下の点までの水平距離です。定義により仰角の正接は対辺÷隣辺に等しいので、tan(θ) は高さ÷水平距離になります。
整理すると作業公式は「水平距離=高さ÷tan(θ)」です。ほとんどの実行環境で正接関数を評価する前に、角を度からラジアンへ変換する必要があり、π を 180 で割った値を掛けます。教科書の定番確認として、高さ 50・仰角 30 度なら水平距離は 50 の √3 倍、仰角 45 度なら tan(45°)=1 のため距離は高さと一致します。
検証の後は正接による一回の除算だけなので経路は完全に決定論的で、同じ有限の高さと角は浮動小数点の丸めの範囲内で常に同じ距離を生みます。本サービスは反復せず、大気モデルを標本化せず、べき級数近似も行いません。
仰角からの距離が実務で現れる場面
中等教育の三角法・プレカルキュラスでは、建物の高さと頂部への仰角が与えられたときどこに立てばよいかを頻繁に問います。開区間の厳格な検査付きの信頼できる計算機は採点を速め、空セルや 90 度の tan で割る表計算ミスを除きます。
野外科学とアウトドア教育では木や崖の高さを独立に測ったうえで、計画したクリノメーター読取に対応する地表距離がワークシート答えや安全余裕のために必要です。測量・建築・施工では、計画仰角を満たすよう仮設バリアを杭打ちしたり機器を置く前に、素早い離隔距離が要ります。
ゲームやシミュレーションの教材は、既知の物体高さと見上げピッチからのカメラ距離、または正しい地表距離にマーカーを置く UI オーバーレイに、同じ「高さ÷正接」経路を使います。データと分析チームは文書例や合成ベンチマーク向けの決定論的幾何フィクスチャを要することがあり、両入力・中間正接・距離・method 文字列をエコーすると自己説明的になります。
後に走行と立ち上がりから仰角を戻す逆問題、1 辺と 1 鋭角からの完全な直角三角形ソルバー、地球曲率補正の視準線が必要なら、この水平距離ランディングを過負荷にせず別の検索意図として扱ってください。
活用例
野外・クリノメーター教材
物体高さが既に測られている屋外実験で、計画した仰角読取に合う地表距離を復元します。
よくある質問
この計算機は何を求めますか?
正の物体高さと、0 と 90 の間(両端を含まない)の度単位の仰角が与えられたとき、角の正接で高さを割った地表の水平距離を返します。
どの公式を使いますか?
正接を評価する前に角をラジアンへ変換し、距離には高さと同じ長さ単位を用います。
仰角が 0° または 90° のときは?
0° では正接が 0(無限距離)、90° では正接が未定義です。
高さは負にできますか?
いいえ。 高さは目の高さより上の物体の鉛直サイズを表す正の有限数でなければなりません。目標が観測者より下にある場合は、別の俯角フローを使ってください。
仰角が45°のとき水平距離はどうなりますか?
tan 45°は1なので、水平距離は高さとちょうど同じになります。高さが50なら、同じ単位で距離も50です。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/trig/distance-from-elevation \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"height":50,"angle_deg":30}'const res = await fetch("https://api.kit.forhosting.com/trig/distance-from-elevation", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"height": 50,
"angle_deg": 30
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/trig/distance-from-elevation",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"height": 50,
"angle_deg": 30
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/trig/distance-from-elevation", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"height":50,"angle_deg":30}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"height":50,"angle_deg":30}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/trig/distance-from-elevation", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"height": 50,
"angle_deg": 30
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "trig.distance_from_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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
宿題を確認する学習者、クリノメーター読取から離隔距離を復元する測量者、野外教材の答えを作る教育者、決定論的な幾何フィクスチャを配線する開発者は、入力のエコー、tan_angle、horizontal_distance、公式を示す method 文字列を含む安定した JSON 結果を得られます。(0, 90) の開区間の端または外側の角、および非正の高さは、tan(0) が 0 で tan(90°) が未定義であるため、明確な invalid_input エラーで拒否されます。無料のブラウザツールと有料 API は同じ純粋関数を共有するため、授業デモと自動パイプラインが同一入力で静かに食い違うことはありません。
送信する内容と返る内容
必須の有限数を二つ指定してください。0 または負の高さは、このモデルが高さを符号付きオフセットではなく正の物体サイズとして扱うため不正です。角 0 は tan(0)=0 での除算を強制し無限距離を意味し、角 90 度は観測者を鉛直線の足元に置き正接が未定義になります。素早い確認には無料ブラウザツールを使い、開区間ゲートを各言語で再実装せず大量の離隔復元が必要なときはスクリプトから同一契約を呼び出してください。height(別名 rise, vertical, h, object_height)は一貫した任意の長さ単位での厳密に正の鉛直長、angle_deg(別名 angle, elevation, elevation_angle, theta)は 0 と 90 の間(両端を含まない)の度単位の仰角です。欠落フィールド、非数値文字列、NaN、Infinity は invalid_input で拒否され、課金されません。解析後、height が 0 より大きく、angle_deg が開区間 (0, 90) にあることを確認します。成功時、JSON 応答は正規化した height と angle_deg をエコーし、ラジアンに変換した仰角 angle_rad、除算に用いた tan_angle、height と同じ長さ単位の horizontal_distance、ログや教材 UI 向けの method 文字列 height_over_tan_elevation を返します。例:高さ 50・角 30 度はおよそ 86.6 水平単位、高さ 100・角 45 度は 100、角 0 または 90 は angle_deg を名指しするエラーになります。契約は単体テスト・宿題チェッカー・一括パイプライン向けの安定 JSON です。
仰角からの距離が実務で現れる場面
本能力は純粋な parse エンジンのため、API 料金は成功 1 件あたり公開ベースの $0.002 で、検証失敗は残高を消費しません。
連携の活用例
宿題・試験の確認
既知の物体高さと仰角から水平離隔を計算し、0° または 90° の角は明確な invalid_input エラーで拒否します。
視準線とゲーム支援
与えられた物体高さと見上げピッチに対し、ブラウザと API で同じ純粋公式により観測者やカメラを正しい地表距離に置きます。
技術的な質問
料金はいくらですか?
ブラウザツールは無料でローカル実行されます。API リクエストは成功 1 件あたり $0.002 の前払い KIT 残高を使い、無効入力は課金されません。