2引数の逆正接を度で計算
xが−1、yが1のベクトルは135°、つまり左上を向いています。yとxの順に2つの座標を入力すると、象限を正しく保ったまま−180から180の範囲の角度を度で返します。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- Y
- 1
- X
- -1
- 度
- 135
この2引数の逆正接計算機は、直交座標で表した向きを度単位の角度に変換します。縦の座標yと横の座標xを入力すると、yをxで割った値の単純な逆正接では失われる象限を保ったまま、atan2(y, x)を計算します。結果は−180度から180度までの主値の全範囲にわたるため、方位、ベクトル、グラフィックス、ロボット工学、航法、幾何の検算に役立ちます。計算は決定的でネットワークに依存せず、点(0, 0)には向きがないため、原点ははっきりと拒否します。
2つの引数で向きが保たれる理由
一般的な1引数の逆正接が受け取るのは比、つまり通常はyをxで割った値です。この比だけでは、すべての向きを区別できません。たとえば点(1, 1)と点(−1, −1)は、ベクトルが反対側の象限を向いているにもかかわらず、同じ比になります。
2引数の形式は符号付きの2つの座標をそのまま保持して別々に使うため、向きが横軸の右か左か、上か下かを判別できます。この計算機は標準的なatan2(y, x)の順序に従い、yが縦の成分、xが横の成分です。正の角度は正のx軸から反時計回りに、負の角度は時計回りに回ります。
右を向くベクトルは0度、真上を向くベクトルは90度、真下を向くベクトルは−90度を返します。負のx軸上のベクトルは180度を返します。このように向きの情報をすべて保てることが、商の逆正接を手計算する代わりにatan2を使う最大の理由です。
また、2つの座標は別途計算した比を経由せず、そのまま角度の関数に渡されるため、xが0のときのゼロ除算も避けられます。
座標の入力方法と結果の読み方
2つの値の組は、原点を始点とし、横方向にx、縦方向にyの位置にある点を終点とするベクトルと考えてください。整数の結果やよく知られた対角線の角度は短いまま、あまり見かけない傾きでも十分な精度が残ります。主値は、atan2について説明した度の全範囲に収まり、横軸より下の値は通常は負、上の値は正になります。
コンパスのように0から360までの範囲が必要なアプリケーションでは、受け取った後で負の結果に360を足して変換してください。項目を逆にしないでください。atan2は先にy、次にxを受け取り、入れ替えると一般には別の角度を測ることになります。
どちらの項目も必須で、文字列として書かれた数字の1のような値が黙って変換されることはありません。点(0, 0)は拒否します。プログラミング環境によってはこの入力に慣例として0を返すものもありますが、零ベクトルには大きさも一意の向きもないため、角度を示せば幾何学的な実態を誤って伝えることになります。
決定的な度の角度が役立つ場面
2引数の逆正接は、符号付きの成分の組を向きに変えなければならない場面ならどこにでも登場します。インタラクティブなグラフィックスでは、ポインターの位置から物体の位置を引き、得られた縦と横のずれを渡せば、ポインターの方へ向けるための回転角が求まります。ロボット工学では、車輪のオドメトリ、速度の成分、目標までの変位を、診断や制御ロジック用の方位に変換できます。
地理や航法の前処理では、投影した東西方向と南北方向の差を、より専門的な方位モデルを適用する前に平面上の向きとして確認できます。教師はこのツールで象限の情報がなぜ重要かを示せますし、テストスイートでは軸、対角線、任意のベクトルについて中身の分かる参照ケースを作れます。
実装に使っているのは、有限数の検証、ネイティブで決定的なatan2演算、180をπで割った係数による換算、安定した小数の丸めだけです。言語モデルの呼び出しも、外部サービスへの問い合わせも、乱数も、現在の日付への依存もありません。
そのため同じ入力からは常に同じ結果が得られ、スクリプト、ビルド時の検査、授業の演習、そして見た目だけの不透明な読み取りではなく明確な度の値を必要とする小規模なエンジニアリングの処理に適しています。
活用例
2Dオブジェクトの向きを合わせる
ポインターや目標までの符号付きのずれを、正しい象限を保ったまま回転角に変換します。
ロボットの方位を確認する
動きの横と縦の成分を、テストや診断に使える再現性のある度単位の方位に変換します。
象限の振る舞いを教える
比が同じになる座標の組を比べ、atan2が平面全体で異なる向きを返す理由を示します。
よくある質問
atan2にyとxの両方が必要なのはなぜですか?
それぞれの符号が象限を決めるからです。yをxで割った商では、向きが互いに反対の場合にその情報が失われます。
座標はどの順番で指定すればよいですか?
名前付きの項目で、先にy、次にxを指定してください。一般的なatan2(y, x)のシグネチャと同じ順序です。
結果はどの範囲になりますか?
主値は−180度から180度の範囲で、負の値は正のx軸から時計回りの回転を表します。
点(0, 0)が拒否されるのはなぜですか?
零ベクトルには一意の向きがないため、原点での角度は幾何学的に定義できません。
負の結果を方位のような角度に直すには?
負の結果に1周分の三百六十度を足してください。横軸より下の点は負の角度になりますが、足し合わせれば同じ向きを円全体で測った角度として表せます。
座標はどの順番で入力しますか?
先にy(縦の成分)、次にx(横の成分)です。入れ替えると別の角度を測ることになります。yが1、xが−1なら結果は135°です。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/trig/atan2-degrees \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"y":1,"x":-1}'const res = await fetch("https://api.kit.forhosting.com/trig/atan2-degrees", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"y": 1,
"x": -1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/trig/atan2-degrees",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"y": 1,
"x": -1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/trig/atan2-degrees", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"y":1,"x":-1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"y":1,"x":-1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/trig/atan2-degrees", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"y": 1,
"x": -1
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "trig.atan2_degrees",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
座標の入力方法と結果の読み方
yとxはどちらも有限のJSON数値で指定してください。計算機が返すのはdegreesという1つの項目だけで、JSONを安定させて読みやすくするため、小数点以下最大12桁に丸めます。厳密な数値APIは、データの形の誤りを早い段階で見つけるためです。
決定的な度の角度が役立つ場面
ブラウザ版は1回限りの計算に便利で、自動化したリクエストは成功1件ごとに$0.002かかります。
技術的な質問
APIでの計算にはいくらかかりますか?
成功したAPIリクエスト1件ごとに$0.002かかります。ブラウザの計算機では、同じ決定的な計算を端末内で実行できます。