ForHosting KIT · Ciência

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
Use pelo WebAPIE-mailTelegramApp em breve
Se você digitar
Ângulo de incidência
30
N1
1
N2
1,5
Você obtém
Â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.

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.

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.

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.

POSThttps://api.kit.forhosting.com/phys/angle-of-incidence

Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.

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}'
{
  "incidence_angle": 30,
  "n1": 1,
  "n2": 1.5
}
{
  "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.

por chamadaUS$ 0,002

Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.

HTTPCódigoO que significa
401unauthorizedToken ausente ou inválido. Confira o header Authorization.
402insufficient_balanceSaldo insuficiente para esta tarefa. Faça uma recarga e tente de novo.
404unknown_typeEsse tipo de tarefa não existe. Confira o campo type no catálogo.
429rate_limitedMuitas requisições em pouco tempo. Espere um instante e tente de novo.

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.

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.

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.

Ver a documentação completa do KIT →