Calculadora do ângulo de incidência
Um raio que passa de índice 1 para um vidro de 1,5 com 30° de incidência segue a 19,4712206345° da normal. Digite o ângulo de incidência e os dois índices e receba o de refração, ou um aviso quando houver reflexão total interna. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Ângulo de incidência
- 30
- N1
- 1
- N2
- 1,5
- Ângulo de incidência (°)
- 30 degrees
- Ângulo de refração (°)
- 19,4712206345
- Ângulo de refração (rad)
- 0,3398369095
A calculadora de ângulo de incidência responde à clássica pergunta da óptica em uma única chamada: a luz atinge a fronteira entre dois meios transparentes em um ângulo conhecido, então com que ângulo ela continua do outro lado?
Como o ângulo de refração é calculado
O cálculo segue a lei de Snell, n1·sin(θ1) = n2·sin(θ2), rearranjada como θ2 = arcsin((n1/n2)·sin(θ1)). O ângulo de incidência θ1 é medido a partir da normal — a linha imaginária perpendicular à superfície — e não da própria superfície, portanto 0 grau significa que o raio chega de frente e 90 graus que ele rasga ao longo da fronteira.
Ambos os índices de refração devem ser números positivos; o vácuo é exatamente 1, o ar cerca de 1.0003, a água cerca de 1.333 e os vidros comuns ficam entre 1.5 e 1.6. Quando a luz passa para um meio mais denso (n2 maior que n1), o raio se curva em direção à normal e o ângulo retornado é menor que o de incidência; quando passa para um meio menos denso, afasta-se e o ângulo retornado é maior.
Com incidência de exatamente 0 grau, o ângulo de refração é sempre 0, quaisquer que sejam os dois meios, pois um raio que chega ao longo da normal não tem componente lateral para se curvar. O resultado é arredondado para doze dígitos significativos, de modo que a mesma requisição produz saída idêntica byte a byte em qualquer máquina, o que importa quando a resposta é armazenada, comparada ou transformada em hash mais adiante.
Reflexão total interna e o caso de erro
Quando a luz viaja de um meio mais denso para um menos denso (n1 maior que n2), existe um ângulo crítico θc = arcsin(n2/n1) além do qual o valor necessário de sin(θ2) excederia 1 — uma impossibilidade, pois nenhum ângulo real tem seno acima de um. Fisicamente, o raio deixa de atravessar a fronteira e se reflete de volta para dentro, princípio por trás das fibras ópticas e do brilho de um diamante.
Uma pequena tolerância numérica é aplicada na fronteira para que um ângulo de incidência exatamente sobre o ângulo crítico ainda resulte em um ângulo de refração de 90 graus, em vez de oscilar por ruído de ponto flutuante.
Casos de uso
Conferir lição de óptica
Estudantes verificam exercícios da lei de Snell feitos a lápis: informam o ângulo de incidência e os índices dos dois meios e comparam o ângulo de refração calculado.
Estimar a luz que entra no vidro
Planejadores de painéis solares e estufas calculam como raios em um dado ângulo solar refratam em camadas de água ou vidro e detectam reflexão total interna.
Perguntas frequentes
Quanto custa?
Também é grátis executar no seu navegador nesta página.
Qual convenção de ângulo é usada?
Os ângulos são em graus medidos a partir da normal à superfície: 0 é incidência frontal, 90 é rasante. O ângulo de refração é retornado em graus, com uma cópia em radianos incluída.
Quais índices de refração devo usar?
O vácuo é exatamente 1, o ar cerca de 1.0003, a água cerca de 1.333 e o vidro crown comum cerca de 1.52. Ambos os índices devem ser números positivos.
O que acontece além do ângulo crítico?
Quando a luz passa de um meio mais denso para um menos denso e a incidência passa do ângulo crítico, não existe raio refratado: a luz se reflete para dentro. A calculadora avisa isso em vez de dar um ângulo impossível.
O raio se aproxima ou se afasta da normal?
Ele se aproxima da normal ao entrar em um meio mais denso, então o ângulo de refração fica menor que o de incidência. Ao passar para um meio menos denso, ele se afasta e o ângulo cresce. A 0°, segue reto.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
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)Exemplo de requisição
{
"incidence_angle": 30,
"n1": 1,
"n2": 1.5
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "phys.angle_of_incidence",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Você informa o ângulo de incidência em graus, medido a partir da normal à superfície, junto com o índice de refração de cada meio, e o endpoint aplica a lei de Snell para retornar o ângulo de refração em graus. Ele aceita apelidos comuns para cada campo, valida que ambos os índices são positivos e que o ângulo está entre 0 e 90 graus e — em vez de devolver um NaN silencioso — informa um erro invalid_input claro quando a geometria é impossível porque ocorre reflexão total interna.
Reflexão total interna e o caso de erro
Existe um único modo de falha fisicamente significativo, e o endpoint o trata como um resultado de primeira classe, não como uma quebra. Nessa situação, a API rejeita a requisição com um erro invalid_input cuja mensagem informa o ângulo de incidência problemático, os dois índices e o valor do seno calculado, de modo que um pipeline chamador pode capturar o código de erro e mudar sua lógica — por exemplo, tratando o raio como refletido — em vez de tentar analisar um campo numérico que não existe.
Entradas, apelidos e uso prático
Integrações típicas incluem simuladores de lentes e traçado de raios que conduzem um raio por várias fronteiras, ferramentas educacionais que permitem aos estudantes conferir exercícios de óptica feitos a lápis, pipelines de fotografia e renderização que precisam de trajetos de luz fisicamente plausíveis, e ferramentas de layout de painéis solares ou estufas que estimam quanta luz realmente entra no vidro para um dado ângulo solar. A requisição recebe três campos numéricos: incidence_angle (ou seus apelidos angle_incidence, theta1, incidence, i, angle_i, theta_i), n1 para o meio incidente (apelidos n_i, n_incident, incident_index, n1_index) e n2 para o meio transmitido (apelidos n_t, n_refracted, transmitted_index, n2_index). Os números podem chegar como números JSON ou strings numéricas, o que mantém o endpoint amigável a formulários HTML e parâmetros de consulta; booleanos, arrays, NaN e Infinity são rejeitados. A resposta ecoa as entradas validadas e adiciona refraction_angle_deg, o mesmo ângulo em radianos, a fórmula aplicada e a unidade, para que o cliente nunca precise adivinhar convenções.
Casos de integração
Conduzir um raio em um simulador de lentes
Ferramentas de traçado de raios chamam o endpoint em cada fronteira vidro-ar, encadeando o ângulo de saída no próximo segmento do trajeto.
Perguntas técnicas
O que acontece quando ocorre reflexão total interna?
A requisição é rejeitada com um erro invalid_input explicando que não existe ângulo de refração para aqueles índices naquele ângulo de incidência.
Posso enviar os valores como strings?
Sim. Strings numéricas são aceitas e convertidas; valores não numéricos, NaN e Infinity são rejeitados com invalid_input.