Solucionador de triângulos ABC: lados e ângulos de qualquer combinação
O solucionador de triângulos ABC aceita qualquer combinação de lados a, b, c e ângulos internos A, B, C que determine um triângulo e devolve os lados e ângulos que você não forneceu.
Executar grátis
Ele aplica a lei dos cossenos e a lei dos senos na ordem correta para cada caso — três lados, dois lados com o ângulo entre eles, dois ângulos com qualquer lado, ou dois lados com um ângulo não incluído — e recusa entradas que não descrevem triângulo algum, que descrevem vários triângulos ou que trazem valores contraditórios entre si. Os ângulos são informados e retornados em graus; cada resultado é arredondado para estáveis dez casas decimais, de modo que a mesma entrada sempre produz a mesma saída.
Um único endpoint para toda combinação solucionável
A trigonometria dos livros didáticos divide a resolução de triângulos em cinco receitas separadas — SSS, SAS, ASA, AAS e o delicado caso SSA — e cada uma delas tem a sua própria folha de fórmulas. Este solucionador de triângulos reúne as cinco em uma única requisição: você envia os campos que conhecer entre side_a, side_b, side_c, angle_a, angle_b e angle_c, e o solucionador descobre qual receita se aplica. Três lados conhecidos acionam a lei dos cossenos; dois lados com o ângulo entre eles usam a regra do cosseno uma vez e a regra do seno em seguida; qualquer lado combinado com dois ângulos é um problema direto de lei dos senos. Você nunca precisa nomear o caso por conta própria, e a resposta sempre traz um campo <em>method</em> que registra qual caminho foi percorrido, o que é útil ao registrar em log ou armazenar resultados em cache. Como a interface é uniforme, o mesmo código de cliente resolve a inclinação de um telhado, um levantamento topográfico e um exercício escolar sem ramificar conforme a combinação.
A consistência é verificada, não presumida
Medições reais raramente concordam. Se você enviar mais do que os três valores de que um triângulo estritamente precisa — digamos, os três lados mais um ângulo medido em campo — o solucionador não ignora silenciosamente o excedente. Ele primeiro resolve o triângulo a partir de um subconjunto determinante e depois verifica cada valor restante contra essa solução dentro de uma tolerância estreita. Um valor que contradiga os demais gera um erro explícito que nomeia o campo, em vez de um triângulo de aparência plausível que satisfaz discretamente apenas parte da sua entrada. A mesma disciplina detecta os modos clássicos de falha antes de qualquer aritmética: três ângulos que não somam 180 graus, três lados que violam a desigualdade triangular, um par SSA cujo lado oposto ao ângulo conhecido é curto demais para alcançar, e o caso ambíguo de SSA em que dois triângulos genuinamente diferentes se ajustam aos dados. Nessa última situação, o solucionador informa a ambiguidade e pede mais uma medição, em vez de escolher um vencedor que você não escolheu.
Como integrá-lo
Envie um objeto JSON com os campos conhecidos como números — strings numéricas também são aceitas — e receba de volta o triângulo completo: os três lados, os três ângulos em graus, a unidade angular e o método utilizado. As partes ausentes são preenchidas; as partes que você forneceu são devolvidas como estão, de modo que a resposta é um registro completo e autossuficiente do triângulo. Tudo é calculado de forma determinística com matemática de precisão dupla e arredondado para dez casas decimais, o que torna a saída segura para comparação byte a byte em testes e caches. A capacidade roda em nossa edge global sem persistir nada, e exatamente o mesmo módulo roda gratuitamente no seu navegador nesta página, assim você pode prototipar um cálculo manualmente e pagar apenas US$ 0,002 por requisição quando automatizá-lo. Não há sobretaxa por unidade: uma requisição entra, um triângulo resolvido sai, US$ 0,002.
Casos de uso
Verifique um levantamento de campo
Envie os lados e ângulos medidos juntos; qualquer valor que contradiga os demais é sinalizado em vez de ser diluído numa média.
Dimensione um telhado ou uma escora
Dois lados e o ângulo entre eles fornecem o terceiro lado e os ângulos restantes para uma lista de cortes em uma única chamada.
Corrija exercícios de geometria
Compare o triângulo completado por um estudante com a saída estável e arredondada do solucionador para problemas de SSS, SAS, ASA e AAS.
Perguntas frequentes
Quanto custa?
US$ 0,002 por requisição. Também é gratuito executá-lo no seu navegador nesta página.
Quais combinações de valores posso enviar?
Qualquer uma que determine um triângulo: três lados, dois lados com o ângulo entre eles, dois ângulos com qualquer um dos lados, ou dois lados com um ângulo não incluído. Você também pode enviar valores extras; eles são verificados quanto à consistência.
O que acontece no caso ambíguo de SSA?
Quando dois triângulos diferentes se ajustam a dois lados e um ângulo não incluído, a requisição é rejeitada com um erro pedindo mais um lado ou ângulo, em vez de arriscar um palpite.
Os ângulos são em graus ou radianos?
Em graus, tanto na entrada quanto na saída. Os ângulos internos devem ser positivos e menores que 180.
Por que recebi um erro de 'entrada inconsistente'?
Porque um dos valores enviados contradiz, além de uma pequena tolerância, o triângulo definido pelos demais — por exemplo, um ângulo que não corresponde a três lados medidos. Confira novamente essa medição.
Posso resolver um triângulo apenas com três ângulos?
Não. Os ângulos fixam a forma, mas não o tamanho, portanto pelo menos um lado é necessário; o solucionador retorna um erro explicando isso.
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/math/abc-triangle \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"side_a":3,"side_b":4}'const res = await fetch("https://api.kit.forhosting.com/math/abc-triangle", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"side_a": 3,
"side_b": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/abc-triangle",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"side_a": 3,
"side_b": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/abc-triangle", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"side_a":3,"side_b":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"side_a":3,"side_b":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/abc-triangle", 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
{
"side_a": 3,
"side_b": 4
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.abc_triangle",
"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. |