座標から多角形の周囲長
多角形の頂点を順番に入力すると、外周の長さが分かります。長方形(0, 0)、(3, 0)、(3, 4)、(0, 4)の周囲長は、閉じる辺を含めて14です。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
処理はブラウザ内で完結します。ファイルは送信されません。無料でご利用いただけます。
デカルト平面上の多角形の順序付き頂点がすでに分かっているとき、周囲長は連続する角の間の直線距離の和に、図形を始点へ閉じる最後の線分を加えたものにすぎません。
閉合辺和が多角形の周囲長をどう求めるか
順序付き頂点を p0、p1、…、p(n−1) とラベル付けし、n は少なくとも2とします。pi から p(i+1) への辺のユークリッド長は、x と y の差の二乗和の平方根であり、まさに Math.hypot が1回の安定した呼び出しで計算するものです。
閉合周囲長は、すべての連続ペアについてのそれらの長さの和に、最後の頂点から最初の頂点へ戻る閉合辺の長さを加えたものです。この最後の線分が、開いた折れ線と閉じた多角形境界を区別します。それがないと経路長しか得られず、図形を囲むフェンスにはなりません。
教室での定番確認には、角が (0, 0)、(3, 0)、(3, 4)、(0, 4) の軸平行長方形(周囲長14)と、直角三角形 (0, 0)、(4, 0)、(0, 3)(辺3・4・5で合計12)があります。アルゴリズムは減算・hypot・加算のみを使うため決定的で、頂点数に対し O(n) であり、三角関数ライブラリや反復ソルバーを必要としません。
実務で多角形周囲長計算が現れる場面
中等・大学の解析幾何の授業では、プロットした頂点から多角形の周囲長を求める問題が絶えず出ます。2点以上の厳格な最小と明示的な閉合辺を持つ信頼できる計算器は採点を速め、最後の辺を忘れる、または繰り返した最初の頂点を二重に数える表計算ミスを取り除きます。
すでに点を局所デカルト平面へ投影している製図・測量・単純な GIS では、杭打ちや報告の前に多角区画の平面フェンス長が必要です。共有の数値オラクルがあれば現場メモと事務スクリプトが同じ辺和経路で揃います。
ゲーム・グラフィックス・CAD のチュートリアルは衝突包や平面図を順序付き点リストとして保存することが多く、周囲長の答えは材料見積もり・経路コスト・詳細度ヒューリスティクスに使え、本格的な計算幾何スタックは不要です。
データと分析のチームは文書例や合成ベンチマーク用の決定的幾何フィクスチャを要することがあり、頂点・辺長・method 文字列を返すことでフィクスチャが自己記述的になります。後で shoelace による多角形面積、地球上の測地長、閉じない開いた折れ線の経路長が必要なら、この多角形周囲長のランディングを過負荷にせず、別の検索意図として扱ってください。
活用例
宿題・試験の確認
順序付きでプロットした頂点から多角形の周囲長を計算し、2点未満のリストは明確なエラーで拒否します。
局所平面の測量フェンス
区画の投影した角座標から、報告や多辺ロットの囲いの前に平面周囲長を求めます。
よくある質問
この計算器はどの公式を使いますか?
閉合辺和:周囲長 = 連続頂点間のユークリッド距離のΣ + 最後の頂点から最初へ戻る辺。
2点未満を送るとどうなりますか?
多角形の周囲長には、少なくとも1本の辺(とその閉合戻り)を測るために頂点が最低2つ必要です。
多角形は閉じたものとして扱われますか?
はい。 歩行は常に最後の点から最初の点への閉合辺を含みます。2点の場合、それは線分長の2倍を意味します。
受け付ける点の形式は?
各頂点はオブジェクト {x, y} またはペア [x, y] で構いません。
2点だけを入力すると距離の2倍になるのはなぜですか?
周囲長は必ず閉じた道のりとして計算するため、行って戻る分が含まれるからです。点(0, 0)と(3, 4)の距離は5なので、周囲長は10になります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/geom/polygon-perimeter \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"points":[{"x":0,"y":0},{"x":3,"y":0},{"x":3,"y":4},{"x":0,"y":4}]}'const res = await fetch("https://api.kit.forhosting.com/geom/polygon-perimeter", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"points": [
{
"x": 0,
"y": 0
},
{
"x": 3,
"y": 0
},
{
"x": 3,
"y": 4
},
{
"x": 0,
"y": 4
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geom/polygon-perimeter",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"points": [
{
"x": 0,
"y": 0
},
{
"x": 3,
"y": 0
},
{
"x": 3,
"y": 4
},
{
"x": 0,
"y": 4
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geom/polygon-perimeter", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"points":[{"x":0,"y":0},{"x":3,"y":0},{"x":3,"y":4},{"x":0,"y":4}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"points":[{"x":0,"y":0},{"x":3,"y":0},{"x":3,"y":4},{"x":0,"y":4}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geom/polygon-perimeter", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"points": [
{
"x": 0,
"y": 0
},
{
"x": 3,
"y": 0
},
{
"x": 3,
"y": 4
},
{
"x": 0,
"y": 4
}
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geom.polygon_perimeter",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
この計算器は点のリストを {x, y} オブジェクトまたは [x, y] ペアとして受け取り、少なくとも2つの有限な頂点があることを検証し、非負の周囲長に加え、正規化された頂点リスト、各辺の長さ、頂点数、および method タグ edge_sum を返します。宿題を確認する生徒、局所投影平面で作業する GIS 補助、点リストとして多角形を保存するゲームや CAD ツール、区画境界の測量メモ、決定的な幾何フィクスチャを必要とするテスト作者は、無料のブラウザツールと有料 API の両方で同じ純粋な結果を得ます。点が2つ未満のリクエストは、成功した解に見える無言のゼロではなく、明確な invalid_input エラーで拒否されます。ネットワーク呼び出しもなく、乱数サンプリングもなく、ご提供の座標に対する通常の IEEE-754 算術を超える浮動小数点の意外性もありません。
閉合辺和が多角形の周囲長をどう求めるか
大きな座標は依然として IEEE-754 倍精度の範囲を溢れ得ます。中間の辺長が非有限になると、JSON で Infinity を返す代わりに、明確なオーバーフローメッセージでリクエストが失敗します。この閉合経路は、測量課程・解析幾何の教科書・計算幾何の入門書が平面多角形の周囲長問題を提示する方法と一致し、自動採点器とパイプラインを手計算と揃えます。
送るものと返ってくるもの
各要素は有限な x と y を持つオブジェクト、または2要素配列 [x, y] のいずれかでなければなりません。解析後、サービスはリングを一度歩き、hypot で各辺長を累積し、総周囲長が有限数であることを確認します。例:上記の単位スケール長方形は長さ3・4・3・4の4辺で周囲長14;2点線分 (0, 0) と (3, 4) は往復するため周囲長10;1点リストは失敗。手早い確認には無料ブラウザツールを使い、各言語で閉合リング歩行を再実装せず座標ベース周囲長の一括評価が必要なときはスクリプトから同一契約を呼び出します。必須の配列フィールド points を1つ指定します(別名 vertices と coords も受け付けます)。頂点は少なくとも2つ必須で、1点だけや空リストは2点ルールを示す invalid_input で失敗します。欠落フィールド、空文字列、非数値テキスト、任意座標上の NaN と Infinity は拒否され、課金されません。成功時、JSON 応答は安定した直列化のために丸めた perimeter、頂点数としての n、正規化された {x, y} ペアのリストとしての points、歩き順の辺ごとの長さの配列(最後に閉合辺)としての edges、およびアルゴリズムをログや教材 UI が文書化できるよう文字列 edge_sum に設定された method を返します。契約は単体テスト、宿題チェッカー、地物多角形をフェンス長へ写すバッチパイプライン向けの安定 JSON です。API 料金は成功1件あたり公開基準の $0.002 です。
実務で多角形周囲長計算が現れる場面
この機能は純粋な解析エンジンのため、検証失敗は残高を消費せず、成功実行は1件あたり $0.002 のままです。
連携の活用例
ゲーム・CAD の包ヘルパー
順序付き2D頂点リストを経路コストと材料見積もり用の閉合周囲長に変換。ブラウザと API で同じ経路です。
技術的な質問
料金はいくらですか?
ブラウザツールは無料でローカル実行です。API リクエストは前払い KIT 残高を成功1件あたり $0.002 で使用し、無効な入力は課金されません。