直交座標→極座標 変換
平面上の点を距離と方向に直します。点(3, 4)は原点から5の距離にあり、角度は第I象限です。角度はラジアンと度の両方で、常に正しい象限で返ります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 直交座標のX
- 3
- 直交座標のY
- 4
- 抵抗(Ω)
- 5
- 象限
- 1
- θ
- 0.927295218
- θ(度)
- 53.1301023542
直交座標(デカルト座標)は、点を水平成分 x と垂直成分 y として表します。極座標は、同じ点を原点からの距離 r と、正の x 軸から測った角度 theta として表します。この機能は、その変換を閉じた形の確定的なアルゴリズムで行います。半径はユークリッド長さ hypot(x, y) で、角度は atan2(y, x) です。atan2 は、第1・第4象限の主値だけを返す代わりに、theta を自動的に正しい象限へ置きます。結果はエンジンをまたいで安定しており、宿題の確認、工学スクリプト、複素数の大きさと位相の計算、オフラインの CI テストに適しています。
直交座標から極座標への変換の意味
平面上では、原点を除くすべての点は、組 (x, y) としても組 (r, θ) としても書けます。半径 r は常に非負で、(0, 0) から (x, y) までの直線距離に等しくなります。角度 θ は、正の x 軸から、その点を通る半直線までの向きつきの角度です。
慣例により、ラジアンで測るときは半開区間 (−π, π](度なら (−180°, 180°])で報告されます。よくある間違いは、1引数の逆正接 atan(y/x) で θ を計算し、あとから象限を手で直そうとすることです。この方法は負の x 軸で破綻し、x がゼロのときに符号を混同し、宿題やファームウェアのバグの多い原因となります。
2引数の関数 atan2(y, x) は、四つの象限すべてと両方の軸について正しい分枝を符号化します。あわせて、丸めた元の x と y、そして入力がどの領域にあったかを確認できる象限ラベルも受け取れます。
原点・軸・精度・実用上の制限
x と y がともに厳密にゼロのとき、あるいはゼロのごく小さな範囲に収まるときは、半径がゼロで、どの角度も等しく有効ですので、極座標表現は一意ではありません。軸上にあっても原点でない点は有効です。例えば (5, 0) は r=5、θ=0 を、(−2, 0) は r=2、θ=π(180°)を、(0, −3) は r=3、θ=−π/2(−90°)を返します。
ネットワーク参照も、乱数の抽出も、時計への依存もありません。同じ入力からは常に同じ出力が得られます。この確定性により、この機能は単体テスト、CI パイプライン、オフラインの演習にも安心して使えます。
極座標から直交座標への変換や、度とラジアンだけの相互変換といった関連する意図は別の検索課題です。このランディングは、デカルト座標の x と y を、正しい象限処理で極座標の r と θ に変えることに特化しています。
活用例
宿題と複素数の大きさ・位相
学生は (3, 4) のような点を r=5、θ=arctan(4/3) に変換したり、(−1, 1) のような第2象限の点で atan2 が誤った第1象限の角ではなく 3π/4 を返すことを確認したりします。
工学のフェーザーと信号位相
スクリプトはインピーダンス・電圧・FFT ビンの実部と虚部を大きさと位相に変え、ボード線図、力率確認、報告表に用います。
ゲーム・ロボティクス・センサーの向き
開発者は速度やオフセットのベクトル (dx, dy) を距離と向きに変換し、操舵・照準・テレメトリが atan2 の端の場合を作り直さずに極形式を使えるようにします。
よくある質問
どの角度公式を使いますか?
r=hypot(x, y)、θ=atan2(y, x) です。atan2 を使うと角度が自動的に正しい象限に置かれます。単純な atan(y/x) ではそうなりません。
x と y がともにゼロのときはどうなりますか?
原点では半径がゼロで極角が定義されないため、ツールは theta を勝手に作り出すことを拒みます。
点(3, 4)を極座標に変換するには?
距離は3² + 4²の平方根で5です。角度は正の横軸から点に向かって測り、二つの座標がともに正なので第I象限に入ります。
yをxで割った値の逆正接だけではいけないのはなぜですか?
その比では反対側の象限を区別できないからです。(3, 4)と(−3, −4)は同じ比ですが、向きは正反対です。二つの座標を別々に使うことで、角度を常に正しい象限に置けます。
角度はラジアンと度のどちらで出ますか?
両方です。どちらを先に表示するかは選べますが、結果には常にラジアンと度の両方の角度が含まれるので、問題や電卓に合わせて使えます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/trig/rectangular-to-polar \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"x":3,"y":4}'const res = await fetch("https://api.kit.forhosting.com/trig/rectangular-to-polar", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"x": 3,
"y": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/trig/rectangular-to-polar",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"x": 3,
"y": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/trig/rectangular-to-polar", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"x":3,"y":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"x":3,"y":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/trig/rectangular-to-polar", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"x": 3,
"y": 4
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "trig.rectangular_to_polar",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
原点 (0, 0) は、r がゼロで角度が定義されないため invalid_input で拒否されます。
変換ツールの呼び出し方と結果の読み方
ラジアンと度は便宜上つねに両方が含まれますので、どちらの形でも電卓、複素解析の演習、グラフィックスのパイプラインへ写せます。典型的な利用者には、教科書の極形式を確かめる学生、複素インピーダンスやフェーザーを変換する技術者、オフセットベクトルを向きと距離に変えるゲーム開発者、直交形式で届くが大きさと位相として保存すべきセンサー値を正規化するデータパイプラインなどがあります。二つのデカルト成分を数値フィールド x と y として送ってください(有限の数に解釈できる数字文字列も受け付けます)。任意で angle_unit を rad(既定)、deg、または both に設定すると、応答でどの角度フィールドを主にするかを制御できます。無料のブラウザ版ランナーは Worker と同じ同型ライブラリを使いますので、ローカルのプレビューは丸めたフィールドで成功時の API 応答と一致します。成功時の JSON には、r、theta(ラジアン)、theta_deg(度)、そのまま返した x と y、象限フィールド(開いた象限では 1〜4、または positive_x のような軸ラベル)、そして angle_unit が含まれます。成功した API 呼び出しの料金は item 単位で一律 $0.002 で、検証の失敗は課金されません。
原点・軸・精度・実用上の制限
そのためこの機能は、θ=0 を勝手に作り出すのではなく、原点を invalid_input と「原点では極角が定義されない」というメッセージで拒否します。欠けたフィールド、有限でない値(NaN、Infinity)、対応しない angle_unit は、問題を示す invalid_input で失敗します。
技術的な質問
直交座標を極座標へどう変換しますか。
数値の x と y を直交座標→極座標のエンドポイントに POST します(または無料のブラウザ版フォームを使います)。応答には r、ラジアンの theta、度の theta_deg、象限ラベルが含まれます。
ブラウザ版は無料ですか。
はい。ブラウザ版ランナーは API と同じライブラリを使い、費用はかかりません。API は成功1件あたり $0.002 を前払いの KIT 残高から請求します。
角度は度で返りますか、ラジアンで返りますか。
両方です。theta はラジアン、theta_deg は度です。angle_unit を rad、deg、both に設定できますが、いずれの場合も対になる単位が便宜上含まれます。