焦点距離計算機
物体と像の位置を測るだけで焦点距離が分かります。物体距離30、像距離15なら焦点距離は10で、収束レンズと判定されます。実験の確認や宿題に向いています。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
処理はブラウザ内で完結します。ファイルは送信されません。無料でご利用いただけます。
この焦点距離計算機は、物体距離と像距離を受け取り、初等幾何光学で使われるガウスのレンズ方程式から薄レンズの焦点距離を求めます。エンジンは有限の算術のみを用い、通信もサンプリングも日付依存の近道もありません。宿題や実験の準備、コンテストのドリルにはブラウザで無料でお使いいただけます。
計算結果の見方と各項目の意味
薄レンズの方程式は、光軸に沿った3つの符号付き長さを関係付けます:物体距離do、像距離di、焦点距離fです。未知の焦点距離について解くと、f = doとdiの積をdo+diで割った値になります。ここで使うガウスの符号規約では、正のfは収束レンズを、負のfは発散レンズを意味します。
正のdiは通常、透過側の実像を、負のdiは虚像を示します。doとfから像距離を求める、多素子系、厚肉レンズの主平面、収差予算が必要な場合は専用の光学ツールをお使いください。
焦点距離の確認が学習・実験・ソフトウェアで果たす役割
学生は、実験が未知のレンズについて物体距離と像距離を測定するとき、宿題が測定したdoとdiからfを求めさせるとき、あるいはコンテストの問題が完全な光線図なしでレンズのパワーを求めさせるときにこの求解に出会います。教師は、符号規約を黙って切り替えたり式を反転させたりする不透明な電卓アプリを信用せずに、控えめな長さの解答例を事前に生成できます。
コンテストの練習では、時間に追われる中でグラフ電卓なしで解答を確認できるよう、焦点距離の高速でオフラインなソースがよく必要とされます。プロダクトや教育向けツールは、学習者が物体距離と像距離を入力するとUIが焦点距離とレンズが収束か発散かを表示する場面でこの求解を使います。
活用例
宿題と実験の確認
教科書または測定したdoとdiからfを計算し、光線をスケッチする前に収束か発散かを確認します。
よくある質問
結果はなぜ精度で丸められるのですか?
既定の精度は小数点以下10桁で、0から15の範囲で設定できます。
物体距離と像距離から焦点距離を出すにはどうしますか?
2つの距離を掛けて、その和で割ります。式はf = do × di ÷ (do + di)です。物体距離30、像距離15なら焦点距離は10になります。
像距離がマイナスになるのはどういう意味ですか?
像が虚像で、物体と同じ側にできることを示します。式はそのまま使え、物体距離5、像距離-10でも焦点距離は10になります。
収束レンズか発散レンズかも分かりますか?
分かります。焦点距離と一緒にレンズの種類が表示され、物体距離30、像距離15の例では焦点距離10が正の値なので収束レンズと判定されます。
厚いレンズや曲率半径からの計算にも使えますか?
使えません。この計算は物体距離と像距離を使う薄レンズの式です。面の曲率半径から求める場合や厚いレンズには、それぞれ専用の計算ツールを使ってください。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/optics/focal-length \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"object_distance":30,"image_distance":15}'const res = await fetch("https://api.kit.forhosting.com/optics/focal-length", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"object_distance": 30,
"image_distance": 15
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/optics/focal-length",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"object_distance": 30,
"image_distance": 15
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/optics/focal-length", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"object_distance":30,"image_distance":15}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"object_distance":30,"image_distance":15}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/optics/focal-length", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"object_distance": 30,
"image_distance": 15
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "optics.focal_length",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_abs_length | 1000000000000000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
関係式は完全に決定的です:1/f = 1/do + 1/diで、これを整理するとf = do×di/(do+di)になります。do = 30、di = 15の実像の例ではf = 10の収束レンズになり、do = 5、di = -10の虚像の例でも同様にf = 10になります。CIやチュータリングソフト、教育デモで再現性のある焦点距離のフィクスチャが必要な場合は、成功したリクエストごとに$0.002のAPIをご利用ください。
焦点距離の求解が返す内容とフィールドの読み方
この計算機は、指定した正規化済みのobject_distanceとimage_distance、要求した精度に丸めた計算後のfocal_length、fの符号から得られる収束または発散のlens_typeタグ、使用したprecision、短いformula文字列、methodタグfocal_lengthを返します。近似的な光線追跡やランダムな面のサンプリングはありません:エンジンはサポートされる長さの範囲内で正確な浮動小数点のfを組み立てるか、それ以外はinvalid_inputで入力を拒否します。doやdiの欠落、有限でない値、規定上限を超える大きさ、0または数値的に0の物体距離や像距離、そして逆数の和が消えてfが未定義になる特殊なケースdo+di=0はすべて拒否されます。このページが答えるのは単一の焦点距離の求解のみで、光線経路を勝手に作ってはならないワークシート、単体テスト、API利用者に適した安定した数値出力です。
物体距離と像距離の読み取り方とfの再現性の保ち方
長さの文字列の先頭のプラス記号や指数表記は、有限の10進数として解釈できる限り許可されますが、埋め込まれた空白、16進数のプレフィックス、数値でないトークンは明確なメッセージとともに拒否され、不正なセルが誤った焦点距離にすり替わることを防ぎます。優先されるフィールドはdoを表すobject_distanceとdiを表すimage_distanceですが、物体距離のエイリアスdo、u、s_o、objectDistance、像距離のエイリアスdi、v、s_i、imageDistanceも受け付けるため、スプレッドシートやクエリ文字列、型付きフォームでも同じ契約を再利用できます。どちらの距離も0は決して有効ではありません:絶対値のdoまたはdiが微小なイプシロン以下の場合、その長さの逆数が未定義であるためinvalid_inputでリクエストは失敗します。同様に重要な点として、doがdiの符号反転値に等しい場合、和は0になりfの式は0で割ることになるため、その幾何はInfinityやNaNを返すのではなく明確なinvalid_inputメッセージで拒否されます。任意のprecisionフィールド(エイリアスdecimals、dp)は数値フィールドで公開する小数桁数を選び、既定は10、上限は15でJSONのgoldensを安定させます。自動パイプラインの中で同一の数学的結果が必要な場合は、このページの無料ブラウザ実行と有料APIを組み合わせ、焦点距離の公式を自前で再実装せずに済ませてください。
焦点距離の確認が学習・実験・ソフトウェアで果たす役割
このページでは処理はすべてブラウザ内で完結し、API経由では成功した照会1件ごとに$0.002かかり、検証に失敗した場合は課金されず、レスポンスを返した後は何も保存されません。無料のインタラクティブな検証と、同一の結果を返す有料APIというこの分離はKITのtier Aカタログ全体の方針と一致しており、教室でのデモから自動パイプラインへ、数学的な結果を変えることなく移行できます。無料で決定的な幾何・代数・初等物理のヘルパーの小さなラボを構築する際は薄レンズの像距離ツールや他の数学・科学エンドポイントとも組み合わせてください。
連携の活用例
決定的なテストフィクスチャ
単体テストやプロパティチェック、CIアサーション向けに再現性のあるfocal_length値を生成します。
チュータリングと光学ウィジェット
インタラクティブな授業やレンズのパワーの簡単なデモ向けに、ユーザー入力の物体距離と像距離を正規化します。
技術的な質問
焦点距離計算機の料金は?
このページのブラウザ上では無料です。API経由では成功したリクエストごとに$0.002かかり、無効な入力には課金されません。
焦点距離はここでどう定義されますか?
1/f = 1/do + 1/diからf = do・di/(do + di)が得られます。ガウスの規約のもとで、正のfは収束、負のfは発散です。
物体距離と像距離の合計が0の場合はどうなりますか?
入力はinvalid_inputとして拒否されます。do + di = 0のとき、逆数の和が消えfが未定義になります。
どちらかの距離が0でもかまいませんか?
いいえ。do = 0またはdi = 0は1/doまたは1/diを未定義にします。どちらのケースもinvalid_inputを返します。