スネルの法則計算機
空気からガラスへ30°で入射した光線は19.4712206345°に屈折します。両方の屈折率と法線から測った入射角を入力すると、屈折角が求まり、全反射になる場合も分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- N1
- 1
- N2
- 1.5
- 入射角
- 30
- 屈折角
- 19.4712206345 degrees
- 相対屈折率
- 1.5
- 入射の正弦
- 0.5
- 屈折の正弦
- 0.3333333333
スネルの法則は、光が二つの透明媒質の界面を横切るとき、表面法線に対してなす角を関係づけます。n1·sin(θ1)=n2·sin(θ2) と書き、空気–ガラス、水–空気など任意の屈折率対でビームがどれだけ曲がるかを日常的に予測する道具です。この計算機は入射側指数、透過側指数、度単位の入射角を受け取り、屈折角を返し、正弦の引数が一を超える幾何(臨界角を超える全反射)を拒否します。授業実験、ファイバ結合のメモ、水槽やプールの設計スケッチはいずれも同じ決定的な答えを必要とします。
スネルの法則が屈折角をどう予測するか
平面界面で接する二つの均質等方媒質から始めます。光線が到着する側の屈折率を n1、透過側を n2 とします。入射角 theta 一も屈折角 theta 二も、界面平面ではなく表面法線から測り、法線入射を零度、かすめ入射を九十度とします。
スネルの法則は n1 に theta 一の正弦を掛けた値が n2 に theta 二の正弦を掛けた値に等しいと述べます。未知の屈折角について解くと、theta 二は n1 を n2 で割った量に theta 一の正弦を掛けた値の逆正弦になります。
光がより密な媒質へ進むとき(n2 が n1 より大きい)、光線は法線に近づき theta 二は theta 一より小さくなります。より密な媒質からより疎な媒質へ出るとき(n1 が n2 より大きい)、光線は法線から遠ざかり theta 二は大きくなります。
疎側では臨界角 theta c が n2 を n1 で割った値の逆正弦となり、theta c より急な入射は正弦引数が一を超え、実の屈折角がなく全反射に対応します。本機能はこの閉じた屈折経路だけを評価します。測定角から未知指数を解かず、多層スタックも曲面の光線追跡もしません。
両指数は有限で厳密に正、入射角は零から九十度の閉区間になければなりません。
スネルの法則計算機が実際に使われる場面
中等・大学の光学では、屈折角・臨界角・全反射の有無を問う界面問題が絶えず出ます。度と中間正弦を返す信頼できるオラクルは採点とデモ準備を速めます。ファイバと導波路の授業実験は受光角を見積もり、クラッド–コア指数が臨界条件以上で導波モードを保てるかを確認します。
水槽・プール・水中カメラの設計者は、空気から見た表面の傾きや水中ファインダーの短縮を予測します。プリズムと分光器のノートは、この計算機の順スネル段を信頼したうえで測定偏向角を指数推定に変換します。
物体距離と像距離からのレンズ倍率、薄肉レンズの焦点距離、ブリュースター偏波、多面の逐次光線追跡が必要なら、このスネル屈折ページを過負荷にせず別ランディングとして扱ってください。
活用例
宿題・実験の解答キー
教科書の n1、n2、入射から屈折角と臨界角の文脈を計算し、教員と自動採点が一つの基準真理を共有できるようにします。
ファイバ・導波路の受光確認
コアガラスからクラッドへ出るとき、与えられた入射の入力光線が臨界角未満に留まるかを検証します。
水中・水槽の視認幾何
プール際の視線や水中カメラハウジングを計画するとき、水–空気界面で光線がどう曲がるかを予測します。
よくある質問
このスネルの法則計算機はどの式を使いますか?
n1 · sin(θ1) = n2 · sin(θ2)、すなわち θ2 = arcsin((n1/n2)·sin(θ1)) です。角は表面法線からの度です。
入射が臨界角を超えるとどうなりますか?
|(n1/n2)·sin(θ1)| > 1 のとき実の屈折角はなく全反射です。n1 > n2 ならエラーに臨界角が含まれます。
角は法線からですか、表面からですか?
標準のスネルの法則どおり表面法線からです。零度は法線入射、九十度は界面に沿ったかすめ入射です。
屈折率の単位は何ですか?
真空基準の無次元絶対屈折率(空気 ≈ 1、水 ≈ 1.333、クラウンガラス ≈ 1.52)。n1 と n2 は有限で厳密に正でなければなりません。
空気からガラスへ入る光はどれだけ曲がりますか?
屈折率1の空気から屈折率1.5のガラスへ30°で入射すると、屈折角は19.4712206345°です。光線は法線に近づく向きに曲がります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/optics/snell-law \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n1":1,"n2":1.5,"angle_incidence":30}'const res = await fetch("https://api.kit.forhosting.com/optics/snell-law", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n1": 1,
"n2": 1.5,
"angle_incidence": 30
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/optics/snell-law",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n1": 1,
"n2": 1.5,
"angle_incidence": 30
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/optics/snell-law", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n1":1,"n2":1.5,"angle_incidence":30}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n1":1,"n2":1.5,"angle_incidence":30}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/optics/snell-law", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"n1": 1,
"n2": 1.5,
"angle_incidence": 30
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "optics.snell_law",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
無料のブラウザツールと有料 API は同型の純粋関数を共有し、同じ入力でデモとパイプラインが食い違うことはありません。
スネルの法則が屈折角をどう予測するか
処理はネットワークも乱数種も壁時計もない純粋な浮動小数点演算なので、同一の n1・n2・入射は常に同一の JSON を生成します。
送るデータと受け取る結果
幾何が全反射になる場合、すなわち n1 を n2 で割って theta 一の正弦を掛けた値の絶対値が一を超えるとき、屈折が臨界角を超えるという明確なメッセージで失敗し、該当すれば計算した臨界角(度)を示して入射や指数の調整を促します。宿題や実験デモには無料ブラウザフォームを、一括解答キーには同じ契約をスクリプトから呼び出してください。フィールド n1、n2、angle_incidence に三つの有限数を送ってください。n1 は入射媒質の屈折率、n2 は屈折媒質の指数、angle_incidence は法線から測った度単位の theta 一です。三フィールドとも必須です。n1 には n_i や incident_index、n2 には n_t や transmitted_index、入射角には theta1、incidence、angle_i などの別名が使えるので、教科書表記のスクリプトに改名層は不要です。欠落フィールド、非数値文字列、NaN、Infinity、正でない指数、零から九十の外の入射は invalid_input で失敗し課金されません。成功時は整理済みの n1・n2・angle_incidence、度単位の angle_refraction、n1 が n2 より大きいときの critical_angle(それ以外は null)、真偽値 total_internal_reflection_possible、relative_index(n2/n1)、中間確認用の sin_incidence と sin_refraction、表示用の formula と unit を返します。定番チェック:空気からガラスで n1 = 1、n2 = 1.5、入射三十度で屈折約 19.5 度;臨界角を超えるガラスから空気は明示的エラー経路;theta 一 = 0 の法線入射は theta 二 = 0 です。成功した API 呼び出しの料金は公開ベース $0.002/件で、検証失敗は前払い残高を消費しません。
スネルの法則計算機が実際に使われる場面
本機能は純粋な parse エンジンのため、API 料金は成功件あたり公開ベース $0.002 で、検証失敗は残高を消費しません。
技術的な質問
料金はいくらですか?
ブラウザツールは無料でローカル実行です。API は成功件あたり $0.002 の前払い KIT 残高を使い、無効入力は課金されません。