3点の座標から三角形の面積を計算
この計算機は、直交座標平面上の3頂点で定まる三角形の面積を求めます。各点のx座標とy座標を入力すると、靴ひも公式の行列式を計算し、その絶対値を2で割ります。結果の単位は座標単位の2乗です。座標がメートルなら平方メートル、無次元のグラフ座標なら平方単位になります。幾何学の問題、地図データ、コンピューターグラフィックス、測量値の確認、自動データ検証などに同じ直接計算を利用できます。
無料で実行
同じ座標系で3つの頂点を入力します
三角形は3つの頂点で完全に定まり、各頂点にはx座標とy座標が必要です。第1点をx1とy1、第2点をx2とy2、第3点をx3とy3として入力してください。6個の値はすべて有限の数でなければなりません。負の数と小数も使用できるため、点はどの象限にあってもよく、格子の交点に置く必要もありません。ただし、すべての座標で同じ直交座標系と測定尺度を使用してください。たとえば、メートルで測った点とフィートで測った点を混在させることはできません。また、対象地域が広く地球の曲率を無視できない場合、緯度と経度をそのまま平面距離として扱わないでください。頂点は時計回りでも反時計回りでも入力できます。計算機が絶対面積を返すためです。ただし、3点は互いに異なり、同一直線上にないことが必要です。一直線上の3点は三角形を囲まないため、行列式が0の場合は通常の面積ではなく無効な入力として通知されます。
靴ひも公式による行列式の計算を確認します
靴ひも公式は、6個の座標を三角形の符号付き面積の2倍に変換します。展開した行列式は、x1にy2とy3の差を掛けた値、x2にy3とy1の差を掛けた値、x3にy1とy2の差を掛けた値の合計です。計算機はこの行列式の絶対値を取り、2で割ります。絶対値を取る前の符号は向きだけを表します。一方が頂点の時計回りの順序、もう一方が反時計回りの順序に対応し、三角形の実際の大きさには影響しません。この行列式は、2辺から作る2次元の外積の大きさを半分にする方法と代数的に同じです。鋭角三角形、直角三角形、鈍角三角形のいずれにも使え、図形が回転して辺が水平でない場合にも対応します。辺の長さ、角度、高さ、底辺の選択は不要です。演算回数は常に一定なので、有効な入力に対して決定的に動作し、計算時間も一定です。
返された面積の単位を読み取り、結果を検算します
応答には絶対面積、靴ひも公式という計算法、座標単位の2乗という次元が含まれます。具体的な単位は入力した座標から判断してください。xとyがセンチメートルなら面積は平方センチメートル、キロメートルなら平方キロメートルです。手作業で簡単に確認するには、座標軸に沿う直角三角形を試します。(0, 0)、(4, 0)、(0, 3)の3点なら、底辺4と高さ3の積の半分なので結果は6です。より複雑な三角形では、第2頂点と第3頂点の順序を逆にして確認できます。符号付き行列式の符号は変わりますが、絶対面積は同じになるはずです。座標の絶対値が極端に大きいと、JavaScriptの有限数演算の範囲を超えることがあります。その場合、使用できない無限大を返さず、オーバーフローとして拒否します。APIは1回$0.002で、ブラウザーでは同じ純粋な計算をローカル実行してすばやく確認できます。
活用例
座標幾何の課題を確認します
辺の長さや垂直な高さを先に求めず、グラフ上の頂点から三角形の面積を直接検算できます。
地図上の多角形を検証します
座標を適切な直交座標系へ投影した後、3点で構成される平面図形の面積を確認できます。
描画やシミュレーションのデータを試験します
三角形メッシュ、衝突形状、生成したテストデータの面積を、決定的な自動処理で計算できます。
よくある質問
どの公式を使用しますか?
3頂点に靴ひも公式の行列式を適用し、その絶対値の半分を返します。
頂点を入力する順序は結果に影響しますか?
影響しません。時計回りと反時計回りを入れ替えると行列式の符号は反転しますが、絶対面積は同じです。
負の座標や小数も入力できますか?
はい。負の値、0、小数を含む有限の数であれば、どの座標にも入力できます。
3点が同一直線上にある場合はどうなりますか?
同一直線上の点は面積を囲まず三角形にならないため、無効な入力としてエラーを返します。
結果はどの単位で表示されますか?
座標単位の2乗です。両軸がメートルなら、結果は平方メートルになります。
APIでの計算料金はいくらですか?
APIは1回$0.002です。Web計算機では、同じ決定的な演算をローカルで実行できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/trig/area-coordinates \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"x1":1,"y1":1,"x2":7,"y2":1,"x3":4,"y3":6}'const res = await fetch("https://api.kit.forhosting.com/trig/area-coordinates", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"x1": 1,
"y1": 1,
"x2": 7,
"y2": 1,
"x3": 4,
"y3": 6
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/trig/area-coordinates",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"x1": 1,
"y1": 1,
"x2": 7,
"y2": 1,
"x3": 4,
"y3": 6
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/trig/area-coordinates", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"x1":1,"y1":1,"x2":7,"y2":1,"x3":4,"y3":6}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"x1":1,"y1":1,"x2":7,"y2":1,"x3":4,"y3":6}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/trig/area-coordinates", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"x1": 1,
"y1": 1,
"x2": 7,
"y2": 1,
"x3": 4,
"y3": 6
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "trig.area_coordinates",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |