ラトゥスレクタム計算|放物線・楕円の焦点弦の長さ
この焦点弦計算ツールは、放物線 y = a·x² + b·x + c、または原点中心の楕円 x²/a² + y²/b² = 1 の定義係数を入力として、その焦点弦、つまり焦点を通り準線に平行な弦の長さを返します。放物線の場合は |1/a|、楕円の場合は 2·min(a,b)²/max(a,b) です。計算は近似を一切含まない厳密な算術で行われ、同じコードがこのページのブラウザ上では無料で、自動化パイプライン向けには有料API経由で動作します。
無料で実行
焦点弦(ラトゥスレクタム)とは
すべての円錐曲線には焦点があり、その焦点を通って準線に平行に引かれる特別な弦が焦点弦です。その長さは、焦点付近で曲線がどれだけ大きく開くかを簡潔に表す指標です。y = a·x² + b·x + c と書かれる放物線では焦点距離が 1/(4a) で、焦点弦はその4倍、すなわち絶対値 |1/a| になります。係数 a が小さいほど開きがゆるやかで焦点弦は長く、a が大きいほど細く短くなります。x²/a² + y²/b² = 1 と書かれる楕円では、焦点弦はどちらかの焦点を通り長軸に垂直で、その長さは 2·min(a,b)²/max(a,b)、つまり短半径の2乗の2倍を長半径で割った値です。円は a = b の特別な場合で、式は直径 2a に帰着し、中心を通る弦として当然の結果です。焦点弦計算ツールはこれらの公式をそのまま適用します。係数を送れば、長さが返ってきます。
計算の仕組み
アルゴリズムは教科書どおりのもので、厳密な算術のみで外部呼び出しは一切ありません。まず入力を検証します。曲線セレクターは 'parabola' または 'ellipse'、必須係数はすべて有限の数値、分母となる係数はゼロであってはいけません。放物線では x² の係数 a がこれに相当し、a = 0 なら y = b·x + c は焦点も焦点弦も持たない直線です。楕円では分母がゼロだと方程式 x²/a² + y²/b² = 1 自体が成立しません。楕円の分母が負の場合も拒否されます。負号は曲線を双曲線に変えてしまい、これは別の円錐曲線で焦点弦の公式も異なるためです。検証を通過すると、放物線は |1/a|、楕円は 2·min(a,b)²/max(a,b) を返します。結果は小数第6位に丸められるため、どのマシンでも安定して同一の出力が得られます。放物線の定数項 c は省略可能で結果に影響しません。放物線を上下に平行移動しても焦点弦は移るだけで、長さは変わらないからです。
焦点弦が登場する場面
焦点弦は単なる宿題の話題ではありません。アンテナや反射鏡の設計では、放物面ディッシュは焦点幾何で仕様が決められ、焦点弦は焦点面での開口弦を測る値です。軌道力学では、楕円軌道の半焦点弦 p が標準的な軌道要素の一つで、引力中心側の焦点を通る弦に相当し、焦点弦全体は単に 2p です。楕円の幾何係数をこの要素に変換するのがまさにこの計算です。弾道学やコンピュータグラフィックスでは、放物線軌道の開きの急峻さを比較しますが、それは |1/a| が一つの数値で捉えてくれます。学生は頂点や焦点の学習に進む前に手計算の答え合わせに使い、教師は答えが保証された問題を生成するのに使います。このエンドポイントはグローバルエッジ上で動作し、送信内容を保存せず、自動化して利用する場合は1リクエストあたり $0.002 です。同じコードがこのページのブラウザ上では無料で動くので、1つの曲線を手で確認する分には無料で、同じ確認がパイプラインの一部になったときだけ料金が発生します。
活用例
解析幾何の練習問題を確認する
頂点・焦点・準線の計算に進む前に、y = 0.25x² の焦点弦が 4 であることを確認します。
楕円を軌道要素に変換する
x²/a² + y²/b² = 1 の幾何的な分母から、焦点を通る弦、すなわち軌道カタログで使われる半焦点弦 p の2倍である焦点弦全体を求めます。
放物面反射鏡の設計案を比較する
各設計方程式の係数 a から焦点弦の幅を求め、候補となるディッシュ形状を順位づけします。
よくある質問
料金はいくらですか?
API経由では1リクエストあたり $0.002 です。このページのブラウザ上では無料で実行できます。
どのような入力を受け付けますか?
曲線セレクター('parabola' または 'ellipse')と定義係数です。y = a·x² + b·x + c なら a、b と任意の c、x²/a² + y²/b² = 1 なら正の分母 a と b です。
放物線の公式は何ですか?
y = a·x² + b·x + c の焦点弦は |1/a| で、焦点距離 1/(4a) の4倍です。影響するのは x² の係数だけです。
楕円の公式は何ですか?
x²/a² + y²/b² = 1 の場合は 2·min(a,b)²/max(a,b) です。短半径の2乗の2倍を長半径で割った値です。円(a = b)では直径 2a に帰着します。
どのような入力が拒否されますか?
'parabola' と 'ellipse' 以外の曲線セレクター、有限の数値でない係数、ゼロの分母係数(放物線は a = 0、楕円は a = 0 または b = 0)、そして双曲線を表す負の楕円分母です。
放物線の定数項は結果を変えますか?
いいえ。c を加えても放物線が上下に平行移動するだけで、焦点弦はそれに伴って動きますが長さは |1/a| のままです。このフィールドは省略可能で、既定値は 0 です。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/math/latus-rectum \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"curve":"parabola","a":2,"b":0}'const res = await fetch("https://api.kit.forhosting.com/math/latus-rectum", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"curve": "parabola",
"a": 2,
"b": 0
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/latus-rectum",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"curve": "parabola",
"a": 2,
"b": 0
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/latus-rectum", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"curve":"parabola","a":2,"b":0}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"curve":"parabola","a":2,"b":0}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/latus-rectum", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"curve": "parabola",
"a": 2,
"b": 0
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.latus_rectum",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |