方位角・ヘディング計算機
(0, 0)から(1, 1)への方位は45°、北東です。平面上の出発点と目標点のx座標とy座標を入力すれば、北から時計回りの方位と2点間の距離が分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- X
- 0
- Y
- 0
- X
- 1
- Y
- 1
- 方位 °
- 45
- 方位 rad
- 0.7853981634
- 距離
- 1.4142135624
- Dx
- 1
コンパス方位は、平面上のある点に立ち、別の点を向いたとき、北を基準に時計回りに測った視線の向きを答える単純な空間の問いです。測量技術者、ゲーム開発者、ロボティクスの学生、野外の計画者は、座標がすでに直交(格子の東西・南北、局所地図のメートル、またはプラスyが北・プラスxが東となるよう再割り当てした画面系)であるときに、その数値が必要になります。本機能は起点と終点の4つの数値を受け取り、両点が一致する未定義の場合を拒否し、度とラジアンの方位、ユークリッド距離、変位成分、N・NE・WSW のような16方位のラベルを返します。
直交平面上のコンパス方位の意味と、純粋なatan2傾き角との違い
航海・測量では、方位とは観測者から目標への水平方向であり、真北または格子北から測り、東・南・西を経て時計回りに増え、三百六十度でゼロと同一視されます。この慣習は、多くのプログラミング言語がatan2(y, x)で返す数学的な極角(正のx軸から反時計回り)とは意図的に異なります。
y軸が北・x軸が東を向く直交平面では、東差を北差に対してatan2し、ゼロ以上三百六十未満の半開区間へ正規化することで航海形が得られます。検索意図は「方位角計算機」「2点間のヘディング」「座標からコンパス方位」「点Aから点Bへの方向」などの語句に集まります。
利用者は地図の方位盤、ロボットのオドメトリ枠、課題の解答と照合できる数値の向きを求めており、傾き比だけでは足りません。
座標の検証、方位と距離の計算、一致点の拒否の仕組み
起点はx1とy1、終点はx2とy2です。フォームがテキストを送る場合、トリム後の数値文字列も受け付けます。エンジンはdxをx2−x1、dyをy2−y1とします。
両差分がちょうどゼロなら点が一致し、変位ベクトルがないためコンパス方位は未定義です。十六方位のラベルは、度方位を最も近い二十二・五度区画へ丸めて選びます。部分入力・非数値テキスト・変位ゼロの組は、偽の方位を返す前に明示的に失敗します。
実務での使い方、限界、料金、提供経路
格子演習の確認、ロボットのウェイポイント一覧の検証、ベースキャンプの北東が約四十五度であることをGISスタックなしで確かめるなど、すぐ方位が欲しいときはブラウザツールを使ってください。検証失敗は残高を消費しません。受理するのは有限の直交座標のみです。
WGS84楕円体上の大圏方位でも、磁気偏角の補正でも、複数区間を繋ぐ経路計画でもありません。結果は完全に決定的で、同じ4座標は常に同じ方位・距離・方位ラベル・エコー点になります。言語モデルも外部地図サービスも乱数もないため、継続的インテグレーションや再現可能な教材に固定しても安全です。
活用例
格子・地図の宿題ドリル
学生と採点者が直交2点間のコンパス方位と距離を確認し、点が同一のときは明確に拒否します。
ロボティクスとゲームナビのフィクスチャ
局所枠の方位の単体テストを種付けするパイプラインは、言語ごとにatan2の折り返しを再実装する代わりに純粋な方位オラクルを呼び出せます。
よくある質問
方位計算機はどの座標規約を使いますか?
プラスyが北、プラスxが東です。方位は北から時計回りに度で [0, 360) 上に測ります。
2点が同じ場合はどうなりますか?
変位がないときコンパス方位は未定義で、その呼び出しは課金されません。
緯度経度から大圏方位を計算しますか?
いいえ。 直交座標のみから平面コンパス方位を計算します。緯度経度の大圏方位には測地ツールを使ってください。
16方位の表示は何を意味しますか?
方位角に最も近いコンパスの16方位の名前で、NやNEのように表示します。45度ならNEです。素早く確認するための目安で、正確な値は度の数値です。
距離も分かりますか?
はい。方位のほか、2点間の直線距離と東方向・北方向の移動量も表示します。(0, 0)から(1, 1)なら距離は1.4142135624です。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/trig/bearing \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"x1":0,"y1":0,"x2":1,"y2":1}'const res = await fetch("https://api.kit.forhosting.com/trig/bearing", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"x1": 0,
"y1": 0,
"x2": 1,
"y2": 1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/trig/bearing",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"x1": 0,
"y1": 0,
"x2": 1,
"y2": 1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/trig/bearing", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"x1":0,"y1":0,"x2":1,"y2":1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"x1":0,"y1":0,"x2":1,"y2":1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/trig/bearing", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"x1": 0,
"y1": 0,
"x2": 1,
"y2": 1
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "trig.bearing",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
直交平面上のコンパス方位の意味と、純粋なatan2傾き角との違い
度・ラジアン・距離・方位ラベルを一つのJSONオブジェクトで返すことで、現場メモへの貼り付け、自動テストへの固定、より大きなパイプラインへの供給が容易になり、度の折り返しや方位盤の区分を教える・展開する言語ごとに再実装する必要がなくなります。
座標の検証、方位と距離の計算、一致点の拒否の仕組み
有限な4つの数値を含むJSON本体を送ります。各フィールドは必須で、欠落・空文字・非有限量はinvalid_inputで失敗し、不完全なフォームが黙ってゼロ方位を返すことはありません。要求は点が一致した旨のinvalid_inputで失敗し、課金されません。それ以外ではdxとdyのatan2を取り、度に変換し、ゼロから三百六十の範囲へ正規化し、正規化後の度からラジアンを導き、hypotで距離を計算して大きな成分でも数値的に安定させます。結果は安定した小数精度に丸められ、同じ入力はJavaScriptエンジン間で常に同じJSONになります。
実務での使い方、限界、料金、提供経路
スクリプト、教材プラットフォーム、ゲーム補助、現場ノートが単一契約の下で多数の起点・終点ペアに安定したJSONを必要とするときはAPIを使ってください。成功した各要求は$0.002で請求される1件です。
連携の活用例
現場メモと単純な経路区間
すでに東西・南北を保存している野外計画やセンサログは、安定した度方位と方位ラベルを構造化JSONとして得られます。
技術的な質問
このAPIでコンパス方位を計算するには?
x1、y1、x2、y2 を trig.bearing に送ってください。応答は bearing_deg、bearing_rad、distance、dx、dy、cardinal、および from/to 点を返します。
方位・ヘディング計算機は無料ですか?
ブラウザツールはお使いの端末で無料です。API呼び出しは成功1件あたり $0.002 のプリペイドKIT残高を使い、検証失敗は課金されません。