球面鏡の物体距離計算
この球面鏡物体距離計算機は、鏡の公式を変形し、希望する像距離を得るために物体を置くべき位置を求めます。同じ長さの単位で焦点距離と像距離を入力し、標準的な符号規約を適用すると、その単位で物体距離が得られます。凹面鏡と凸面鏡の両方に対応し、物体が無限遠になる組み合わせも判定します。光学の学習問題、実験装置の配置、光学設計の初期検討をすばやく確認する際にご利用いただけます。
無料で実行
処理はブラウザ内で完結します。ファイルは送信されません。無料でご利用いただけます。
一貫した符号規約で距離を入力してください
この計算機では、実在する量を正とする一般的な符号規約を使用します。凹面鏡の焦点距離は正、凸面鏡の焦点距離は負として入力してください。反射光線が実際に収束し、鏡の前に実像を結ぶ場合は像距離を正にします。像が虚像で鏡の後ろにあるように見える場合は負にします。焦点距離と像距離には、ミリメートル、センチメートル、メートルなど、必ず同じ物理単位を使用してください。式は同次式なので、結果も自動的にその単位になります。片方を換算せず、焦点距離にセンチメートル、像距離にミリメートルを混在させないでください。符号は表示上の好みではなく測定値の一部であり、変更すると求める物理配置も変わります。APIでは小数値と数値文字列を受け付けますが、両方の距離は有限かつ0以外でなければなりません。鏡、物体側、像側を簡単な図にして値の横に置くと、計算前の符号間違いを防ぎやすくなります。
物体距離の計算方法
球面鏡では 1/f = 1/do + 1/di が成り立ちます。fは焦点距離、doは物体距離、diは像距離です。未知の物体距離について解くと、do = f × di / (di − f) になります。この機能は、与えられた2つの量から有限の結果を求められることを検証したうえで、この変形式を直接適用します。像距離が焦点距離と等しいと分母は0になります。物理的には物体が無限遠にある極限状態を意味するため、有限の物体距離は返せず、入力エラーとしてお知らせします。焦点距離または像距離が0の場合も、鏡の公式の逆数形式が定義されないため受け付けません。結果では代数的な符号を維持します。通常、正の物体距離は鏡の前にある実物体、負の値は虚物体を表します。数値出力は安定した有効精度に正規化されるため、ブラウザーとAPIのどちらでも繰り返し計算した結果が決定的になります。
結果を解釈して配置を確認してください
返された物体距離は、理想的な近軸鏡モデルが要求する位置として扱ってください。絶対値は鏡の頂点から物体までの距離を示し、符号は採用した規約における側を示します。たとえば、焦点距離が正の凹面鏡では、多くの実像位置に対して正の物体距離が得られます。独立した確認方法として、結果を元の式へ代入すると有効です。通常の丸め誤差の範囲で、1/f と 1/do + 1/di が一致するはずです。この計算では、球面鏡、主軸に近い光線、無視できる鏡の厚さ、既知の焦点距離を前提とします。球面収差、開口制限、鏡の傾き、波長に依存するコーティング、機械的なクリアランスは扱いません。精密な光学系では、これらの影響を完全な光線追跡モデルで評価してください。学習、光学ベンチの計画、短時間での実現性確認では、理想式により、希望する像位置に有限の物体配置が対応するか、その配置が実在か虚像的かを明確に判断できます。
活用例
凹面鏡の実演を計画する
照明した物体の実像が希望する距離のスクリーンに結ばれるよう、物体を置く位置を求めます。
光学問題の解答を確認する
鏡の公式から物体距離を求め、その大きさと符号を光線図と照合します。
実験ベンチの配置を見積もる
ホルダーや標的を設置する前に、希望する像面から有限で実用的な物体位置が得られるか確認します。
よくある質問
計算料金はいくらですか?
APIは1回の計算につき$0.002です。このページのブラウザー計算機は無料でご利用いただけます。
どの単位を使用すればよいですか?
長さの単位は自由ですが、焦点距離と像距離で同じ単位を使用してください。物体距離もその単位で返されます。
物体距離が負になるのはなぜですか?
実在する量を正とする規約では、負の物体距離は鏡の前にある実物体ではなく虚物体を表します。
像距離と焦点距離が等しいとエラーになるのはなぜですか?
変形式の分母が0になり、有限の位置ではなく物体が無限遠にある状態に対応するためです。
凹面鏡と凸面鏡の両方に使えますか?
はい。この符号規約では、凹面鏡の焦点距離を正、凸面鏡の焦点距離を負として入力してください。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/optics/mirror-object-distance \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"focal_length":10,"image_distance":30}'const res = await fetch("https://api.kit.forhosting.com/optics/mirror-object-distance", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"focal_length": 10,
"image_distance": 30
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/optics/mirror-object-distance",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"focal_length": 10,
"image_distance": 30
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/optics/mirror-object-distance", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"focal_length":10,"image_distance":30}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"focal_length":10,"image_distance":30}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/optics/mirror-object-distance", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"focal_length": 10,
"image_distance": 30
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "optics.mirror_object_distance",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |