Calculadora del ángulo de incidencia
Un rayo que pasa de índice 1 a un vidrio de 1,5 con 30° de incidencia sigue a 19,4712206345° de la normal. Escriba el ángulo de incidencia y los dos índices y obtenga el de refracción, o un aviso si hay reflexión total interna. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Ángulo de incidencia
- 30
- N1
- 1
- N2
- 1,5
- Ángulo de incidencia (°)
- 30 degrees
- Ángulo de refracción (°)
- 19,4712206345
- Ángulo de refracción (rad)
- 0,3398369095
La calculadora del ángulo de incidencia responde en una sola llamada a la pregunta clásica de la óptica: la luz incide sobre la frontera entre dos medios transparentes con un ángulo conocido, ¿con qué ángulo continúa al otro lado?
Cómo se calcula el ángulo de refracción
El cálculo sigue la ley de Snell, n1·sin(θ1) = n2·sin(θ2), reordenada como θ2 = arcsin((n1/n2)·sin(θ1)). El ángulo de incidencia θ1 se mide desde la normal —la línea imaginaria perpendicular a la superficie—, no desde la superficie misma, de modo que 0 grados significa que el rayo llega de frente y 90 grados que roza la frontera. Ambos índices de refracción deben ser números positivos; el vacío es exactamente 1, el aire unos 1.0003, el agua unos 1.333 y los vidrios comunes están entre 1.5 y 1.6.
Cuando la luz pasa a un medio más denso (n2 mayor que n1), el rayo se desvía hacia la normal y el ángulo devuelto es menor que el de incidencia; cuando pasa a un medio menos denso, se aleja y el ángulo devuelto es mayor. Con una incidencia de exactamente 0 grados, el ángulo de refracción es siempre 0, sean cuales sean los medios, porque un rayo que llega por la normal no tiene componente lateral que desviar.
El resultado se redondea a doce dígitos significativos para que la misma solicitud produzca una salida idéntica byte a byte en cualquier máquina, lo cual importa cuando la respuesta se almacena, se compara o se hashea más adelante.
Reflexión interna total y el caso de error
Cuando la luz viaja de un medio más denso a uno menos denso (n1 mayor que n2), existe un ángulo crítico θc = arcsin(n2/n1) más allá del cual el valor requerido de sin(θ2) superaría 1, una imposibilidad, porque ningún ángulo real tiene un seno mayor que uno. Físicamente, el rayo deja de cruzar la frontera y se refleja de vuelta al interior, principio detrás de las fibras ópticas y del brillo del diamante.
Se aplica una pequeña tolerancia numérica en el límite para que un ángulo de incidencia situado exactamente sobre el ángulo crítico se resuelva como un ángulo de refracción de 90 grados en lugar de oscilar por ruido de coma flotante.
Qué puede hacer con ella
Verificar tareas de óptica
Los estudiantes comprueban sus ejercicios de la ley de Snell hechos a lápiz: introducen el ángulo de incidencia y los índices de ambos medios y comparan el ángulo de refracción calculado.
Estimar la luz que entra en un acristalamiento
Los planificadores de paneles solares e invernaderos calculan cómo los rayos con un ángulo solar dado se refractan en capas de agua o vidrio, y detectan la reflexión interna total.
Preguntas frecuentes
¿Cuánto cuesta?
También es gratis ejecutarlo en su navegador en esta página.
¿Qué convención de ángulos se utiliza?
Los ángulos están en grados medidos desde la normal a la superficie: 0 es incidencia frontal, 90 es rasante. El ángulo de refracción se devuelve en grados, con una copia en radianes incluida.
¿Qué índices de refracción debo usar?
El vacío es exactamente 1, el aire unos 1.0003, el agua unos 1.333 y el vidrio crown común unos 1.52. Ambos índices deben ser números positivos.
¿Qué pasa si se supera el ángulo crítico?
Cuando la luz pasa de un medio más denso a otro menos denso y la incidencia supera el ángulo crítico, no hay rayo refractado: la luz se refleja hacia dentro. La calculadora se lo indica en lugar de dar un ángulo imposible.
¿El rayo se acerca o se aleja de la normal?
Se acerca a la normal al entrar en un medio más denso, así que el ángulo de refracción es menor que el de incidencia. Al pasar a uno menos denso se aleja y el ángulo crece. A 0° sigue recto.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/phys/angle-of-incidence \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"incidence_angle":30,"n1":1,"n2":1.5}'const res = await fetch("https://api.kit.forhosting.com/phys/angle-of-incidence", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"incidence_angle": 30,
"n1": 1,
"n2": 1.5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/phys/angle-of-incidence",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"incidence_angle": 30,
"n1": 1,
"n2": 1.5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/phys/angle-of-incidence", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"incidence_angle":30,"n1":1,"n2":1.5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"incidence_angle":30,"n1":1,"n2":1.5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/phys/angle-of-incidence", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"incidence_angle": 30,
"n1": 1,
"n2": 1.5
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "phys.angle_of_incidence",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Usted indica el ángulo de incidencia en grados, medido desde la normal a la superficie, junto con el índice de refracción de cada medio, y el endpoint aplica la ley de Snell para devolver el ángulo de refracción en grados. Acepta alias comunes para cada campo, valida que ambos índices sean positivos y que el ángulo esté entre 0 y 90 grados y, en lugar de devolver un NaN silencioso, informa un error invalid_input claro cuando la geometría es imposible porque se produce reflexión interna total.
Reflexión interna total y el caso de error
Existe un único modo de fallo físicamente significativo, y el endpoint lo trata como un resultado de primera clase en lugar de un fallo. En esa situación la API rechaza la solicitud con un error invalid_input cuyo mensaje indica el ángulo de incidencia infractor, los dos índices y el valor del seno calculado, de modo que un pipeline que la llame puede capturar el código de error y cambiar su lógica —por ejemplo, tratando el rayo como reflejado— en lugar de intentar analizar un campo numérico inexistente.
Entradas, alias y uso práctico
Entre las integraciones típicas están los simuladores de lentes y trazado de rayos que avanzan un rayo por varias fronteras, las herramientas educativas que permiten a los estudiantes verificar sus ejercicios de óptica en papel, los pipelines de fotografía y renderizado que necesitan trayectorias de luz físicamente plausibles, y las herramientas de diseño de paneles solares o invernaderos que estiman cuánta luz entra realmente en el acristalamiento con un ángulo solar dado. La solicitud admite tres campos numéricos: incidence_angle (o sus alias angle_incidence, theta1, incidence, i, angle_i, theta_i), n1 para el medio incidente (alias n_i, n_incident, incident_index, n1_index) y n2 para el medio transmitido (alias n_t, n_refracted, transmitted_index, n2_index). Los números pueden llegar como números JSON o como cadenas numéricas, lo que mantiene el endpoint amigable con formularios HTML y parámetros de consulta; los booleanos, arrays, NaN e Infinity se rechazan. La respuesta devuelve las entradas validadas y añade refraction_angle_deg, el mismo ángulo en radianes, la fórmula aplicada y la unidad, de modo que el cliente nunca tenga que adivinar convenciones.
Casos de integración
Avanzar un rayo en un simulador de lentes
Las herramientas de trazado de rayos llaman al endpoint en cada frontera vidrio-aire, encadenando el ángulo resultante con el siguiente segmento de la trayectoria.
Preguntas técnicas
¿Qué ocurre cuando se produce reflexión interna total?
La solicitud se rechaza con un error invalid_input que explica que no existe ángulo de refracción para esos índices con ese ángulo de incidencia.
¿Puedo enviar los valores como cadenas?
Sí. Las cadenas numéricas se aceptan y se convierten; los valores no numéricos, NaN e Infinity se rechazan con invalid_input.