端点計算機
一方の端点が(0, 0)、中点が(2, 3)なら、もう一方の端点は(4, 6)です。分かっている端点と中点を入力すると、中点を中心に折り返した残りの端点がすぐに分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- X1
- 0
- Y1
- 0
- Mx
- 2
- My
- 3
- X2
- 4
- Y2
- 6
端点計算機は、座標幾何学で最も一般的な問題の一つを1回の呼び出しで解決します。線分の一方の端点とその中点が分かっていて、もう一方の端点が必要な場合です。2つの端点を平均して中心を求めるのではなく、中心を2倍して既知の端点を引くことで、欠けている端点を復元します。すべての座標は計算前に有限数として検証されるため、不正な入力は静かに NaN を生成するのではなく、明確なエラーで拒否されます。
中点公式の変形
A=(x1, y1) と B=(x2, y2) を結ぶ線分の中点 M は端点の平均です。mx = (x1 + x2) / 2、my = (y1 + y2) / 2 となります。欠けているのが M ではなく B の場合、同じ2つの方程式を x2 と y2 について解くだけです。
幾何学的にはこれは反射です。中点は線分の対称中心なので、欠けている端点は既知の端点を M を通して鏡像反射した点になります。このため、この操作は点を別の点を通して反射する操作とも呼ばれ、結果は常に既知の端点とまったく同じ距離だけ M から反対側に位置します。
計算機は両方の変形を1回のパスで実行し、既知の端点、中点、復元された端点をまとめて返すため、2回目の呼び出しなしに入力と答えを並べて確認できます。
検証と数値の振る舞い
4つの座標 x1、y1、mx、my はすべて存在し、有限数である必要があります。結果は小数点以下10桁に丸められるため、出力はマシンやランタイム間でバイト単位で安定します。0.1 + 0.2 のような浮動小数点の誤差が応答に混入することはありません。
座標は絶対値 1e15 まで受け付けられ、実用上のあらゆる幾何学的負荷を大きく上回ります。計算された端点自体も返却前に有限性が検査されます。計算全体は検証済みの数値の4回の乗算と減算だけなので、結果は完全に決定的です。
同じ入力は常に同じ出力を生成し、乱数も時計も外部サービスも関与しません。
実務での位置づけ
端点が欠ける問題は、対称性やセンタリングが重要なあらゆる場面に現れます。コンピュータグラフィックスや CAD では、ピボット点を中心に鏡像化されたオブジェクトは反射した頂点を必要とし、点を通した反射はまさにこの操作です。測量や地図作成では、既知の基準点から記録された中点とともに測定された測点により、二度目の移動なしに遠方の測点を復元できます。
教育の場では、中点公式の定番の学習パートナーです。学生は A と M を与えられて B を求め、このツールは解答チェッカーとしても機能します。ゲーム開発やアニメーションでは、回転中心の反対側にエンティティの対応物を配置し、レイアウトエンジンでは対称なアンカーポイントのペアを完成させます。
活用例
ピボットを通した点の反射
グラフィックス、CAD、ゲームコードで、頂点やスプライトを中心点を通して反射させます。ピボットが中点であり、反射した頂点が欠けている端点です。
中点の宿題の答え合わせ
一方の端点と中点が与えられると、学生はもう一方の端点を復元し、中点公式の手計算による変形を検証できます。
対称な測定の完成
線分の片側しか直接測定されていない場合に、既知の基準点と記録された中点から遠方の測点やアンカーを復元します。
よくある質問
どのような入力が必要ですか?
4つの座標です。 既知の端点に x1 と y1、中点に mx と my。通常の数値と数値文字列の両方が使えます。
中点計算機との違いは何ですか?
中点計算機は2つの端点を平均して中心を求めます。これはその逆で、一方の端点と中心を受け取り、もう一方の端点を復元します。
データは保存されますか?
いいえ。 座標は処理後に破棄され、計算された端点のみが返されます。
もう一方の端点はどう計算しますか?
中点の座標をそれぞれ2倍し、分かっている端点の座標を引きます。端点が(0, 0)、中点が(2, 3)なら、xは4、yは6になります。
結果はどこまで正確ですか?
結果は小数点以下10桁で丸められるため、小数の計算で生じるわずかな誤差は表示されません。同じ入力からは常に同じ点が返ります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/math/endpoint \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"x1":0,"y1":0,"mx":2,"my":3}'const res = await fetch("https://api.kit.forhosting.com/math/endpoint", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"x1": 0,
"y1": 0,
"mx": 2,
"my": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/endpoint",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"x1": 0,
"y1": 0,
"mx": 2,
"my": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/endpoint", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"x1":0,"y1":0,"mx":2,"my":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"x1":0,"y1":0,"mx":2,"my":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/endpoint", 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,
"mx": 2,
"my": 3
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.endpoint",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
既知の端点 A=(x1, y1) と中点 M=(mx, my) を送信すると、API は中点公式を変形した x2 = 2·mx − x1、y2 = 2·my − y1 により、A を M を通して反射させた欠けている端点 B=(x2, y2) を返します。これは中点計算機の正確な逆演算です。
中点公式の変形
両辺を2倍すると x1 + x2 = 2·mx となり、x1 を引くと未知数が分離されます。x2 = 2·mx − x1 です。y 軸についても同じ手順で y2 = 2·my − y1 が得られます。
検証と数値の振る舞い
通常の JSON 数値に加えて、"3.5" のような数値文字列も受け付けます。これは、値がフォームフィールドや CSV セルから直接来る場合に便利です。欠落したフィールド、空文字列、ブール値、NaN、Infinity、非数値テキストはすべて、問題の座標名を示す invalid_input エラーで拒否され、検証に失敗したリクエストが課金されることはありません。
実務での位置づけ
API はグローバルエッジ上で実行され、応答後に何も保持されません。同じコードがこのページのブラウザ上でも無料で動作するため、1件のケースを対話的に確認し、大規模に自動化するときだけ、1リクエスト $0.002 をお支払いいただけます。
技術的な質問
料金はいくらですか?
1リクエスト $0.002 です。このページのブラウザ上でも無料で実行できます。
どの公式を使いますか?
変形した中点公式 x2 = 2·mx − x1、y2 = 2·my − y1 です。欠けている端点は、既知の端点を中点を通して反射した点です。
無効な入力の場合はどうなりますか?
欠落または非有限の座標(NaN、Infinity、空または非数値のテキスト)は、フィールド名を示す invalid_input エラーで拒否され、失敗したリクエストは課金されません。