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