象限ファインダー
象限判定APIは、デカルト平面上の点のx座標とy座標を受け取り、その点がどこにあるかを正確にお答えします。第I、II、III、IV象限のいずれか、x軸上、y軸上、または原点です。標準的な数学の慣例に従います。第I象限は両方の座標が正の領域で、番号は反時計回りに進みます。ゼロの座標が象限に無理やり分類されることはありません。軸上の点は軸上の点として報告されます。これは、多くの手軽な実装が誤るまさにその区別です。両方の座標は有限の数値である必要があり、それ以外の場合は明確な無効入力エラーが返されます。
無料で実行
点の象限が意味すること
デカルト平面はx軸とy軸によって象限と呼ばれる4つの領域に分割されます。第I象限にはxとyがともに正であるすべての点が含まれます。反時計回りに進むと、第II象限はxが負でyが正、第III象限は両方の座標が負、第IV象限はxが正でyが負です。点の象限を知ることは学校の練習問題以上の意味を持ちます。各値を個別に調べなくても座標の符号パターンがわかるからです。これはまさに、三角法、物理シミュレーション、ゲームエンジンが角度やベクトルを解釈する際に依拠するものです。象限ファインダーは、この一連の推論を1回の分類呼び出しにまとめます。2つの数値を送信すると、1から4までの象限番号が返されます。座標の一方がゼロの場合は、軸または原点であることが明示的に返されます。軸上の点はどの象限にも属さないためであり、それを象限と混同するのは座標幾何学の典型的な誤りです。
分類がどのように決定されるか
ルールは厳密な符号テストで、結果が常に一意になるよう固定された順序で適用されます。まずエンドポイントは両方の座標がゼロかどうかを確認し、その場合その点は原点です。次にyがゼロかどうかを確認し、ゼロなら点はx軸上にあり、xがゼロかどうかを確認し、ゼロならy軸上にあります。両方の座標がゼロでない場合にのみ、それぞれの符号が象限を決定します。正・正はI、負・正はII、負・負はIII、正・負はIVです。この順序が重要なのは、(0, 5)のような点は第I象限でも第II象限でもなくy軸上にあり、(0, 0)は任意の軸ではなく原点だからです。入力の検証も同様に厳密です。各座標は有限の数値でなければならず、NaN、Infinity、欠落したフィールド、非数値は、暗黙のうちに誤った分類を生成するのではなく、無効入力エラーで拒否されます。
実務での活用場面
教育ツールはこのエンドポイントを使い、座標平面に関する生徒の回答を即座に一貫して採点します。ゲーム開発者は象限ロジックを使ってスプライトの向き、ミニマップの配置、衝突領域を決定しており、このAPIによりサーバー側の検証をクライアントと一致させることができます。データ可視化パイプラインは、散布図に色付けと注釈を付ける前に点を領域ごとにグループ化するために利用します。同じ決定的コードがこのページではブラウザで無料で動作し、API呼び出しでは当社のエッジで動作するため、対話的に分類を試してから自動化でき、結果が完全に一致することを確信できます。呼び出しはステートレスで、何も保存せず、API経由の場合は1リクエスト$0.002です。大量の処理には点ごとに1リクエストを送信し、クライアント側で位置を集計してください。バッチ版はないため、契約も料金もきわめて予測可能です。
活用例
座標幾何の演習を採点する
独自の符号テストロジックを書くことなく、生徒が点を正しい象限に配置したかどうかを確認できます。
散布図の点を色分けのためにグループ化する
描画前に各点を象限または軸で分類し、各領域に独自の色を付けられます。
ゲームワールドの座標をサーバー側で検証する
クライアントから送信された位置が、サーバーの向き判定ロジックが期待する領域内にあることを確認できます。
よくある質問
料金はいくらですか?
1リクエスト$0.002です。このページではブラウザで無料で実行することもできます。
どの象限の番号付けを使いますか?
標準の慣例です。第I象限はxが正でyが正であり、番号は反時計回りにIVまで続きます。
座標がゼロの場合はどうなりますか?
その点はx軸上(y = 0)、y軸上(x = 0)、または原点(両方ゼロ)として報告され、象限としては報告されません。
どのような入力が拒否されますか?
欠落している、または有限の数値でない座標です。NaN、Infinity、数値でないテキストも含まれます。
何か保存されますか?
いいえ。座標は分類された後破棄され、位置のみが返されます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/math/coordinate-grid \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"x":-3.5,"y":2}'const res = await fetch("https://api.kit.forhosting.com/math/coordinate-grid", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"x": -3.5,
"y": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/coordinate-grid",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"x": -3.5,
"y": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/coordinate-grid", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"x":-3.5,"y":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"x":-3.5,"y":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/coordinate-grid", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"x": -3.5,
"y": 2
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.coordinate_grid",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |