Ángulos interiores de un polígono por coordenadas
Esta calculadora de ángulos interiores recibe las coordenadas cartesianas ordenadas de un polígono simple y determina el ángulo interno en cada vértice.
Ejecutar — gratis
Funciona con polígonos convexos y cóncavos, por lo que una esquina entrante puede producir correctamente un ángulo reflejo mayor de 180 grados. La respuesta conserva el orden de los vértices, expresa todas las medidas en grados, indica el sentido del recorrido e incluye la suma teórica. El resultado sirve para comprobar geometrías, validar datos de coordenadas y automatizar flujos reproducibles.
Introduzca un contorno poligonal ordenado
Proporcione al menos tres vértices como objetos con coordenadas numéricas finitas x e y. El orden debe recorrer el límite del polígono de forma continua, en sentido horario o antihorario. No repita el primer punto al final, pues la calculadora cierra automáticamente la última arista. Las coordenadas describen un plano cartesiano y pueden representar unidades de dibujo, metros de un sistema proyectado, píxeles u otra escala lineal coherente. No se interpretan como longitud y latitud sobre una Tierra curva. La entrada debe formar un polígono simple: los vértices vecinos no pueden coincidir, ningún punto puede repetirse, el área encerrada debe ser distinta de cero y las aristas no adyacentes no pueden cruzarse ni tocarse. Estas condiciones evitan resultados ambiguos cuando el contorno se pliega sobre sí mismo. Si la validación falla, la respuesta identifica el problema del vértice o de la arista correspondiente, en vez de mostrar medidas aparentemente válidas para una geometría incorrecta.
Interprete los resultados convexos, cóncavos y reflejos
En cada vértice, la calculadora construye vectores desde el punto actual hacia sus vecinos anterior y siguiente. El producto escalar y el producto vectorial determinan el ángulo local y la dirección del giro. El área con signo del polígono establece si todo el contorno se recorre en sentido horario o antihorario. La combinación del giro local y ese sentido distingue una esquina convexa normal de una esquina cóncava cuyo interior corresponde al ángulo reflejo. Por ello, un rectángulo convexo devuelve cuatro valores de 90 grados, mientras que una hendidura puede superar los 180 grados. La matriz angles_deg mantiene exactamente el orden de los vértices de entrada; el índice cero siempre corresponde al primer punto facilitado. Los resultados se redondean a diez decimales para evitar colas de coma flotante sin perder precisión útil. Los puntos colineales pueden generar 180 grados si no provocan un solapamiento inválido. El campo winding solo describe la orientación del recorrido.
Compruebe la suma y utilice la salida con seguridad
Todo polígono simple con n vértices tiene una suma de ángulos interiores igual a (n − 2) × 180 grados, sea convexo o cóncavo. El campo total_sum_deg informa directamente de esa propiedad, mientras que vertex_count proporciona n. Esta suma permite comprobar rápidamente geometrías importadas de CAD, contornos digitalizados, ejercicios educativos o aplicaciones de dibujo. Los valores individuales redondeados pueden diferir mínimamente de una suma de coma flotante realizada por separado; por eso conviene usar total_sum_deg como total teórico autorizado, en lugar de exigir igualdad bit a bit al sumar valores mostrados. La capacidad es determinista: las mismas coordenadas ordenadas siempre generan el mismo JSON, sin red, azar ni hora actual. Puede ejecutarla gratuitamente en el navegador o llamar a la API por $0.002 por solicitud al integrarla en una canalización. Mantenga todas las coordenadas en un único sistema plano y proyecte previamente los datos geográficos cuando la curvatura pueda alterar la geometría prevista.
Qué puede hacer con ella
Validar una herramienta de dibujo
Compare las medidas de las esquinas y la suma teórica después de editar un trazado poligonal ordenado.
Examinar geometría cóncava
Detecte ángulos reflejos en esquinas entrantes sin suponer que todo polígono es convexo o regular.
Corregir ejercicios de coordenadas
Genere ángulos deterministas por vértice y la suma prevista para polígonos dados como listas de coordenadas.
Preguntas frecuentes
¿Funciona con polígonos cóncavos?
Sí. Emplea el sentido del contorno y el giro local para devolver ángulos interiores reflejos mayores de 180 grados cuando corresponde.
¿Debo repetir el primer vértice al final?
No. La arista de cierre es implícita y la repetición del primer vértice se rechaza como duplicado.
¿Puedo usar directamente latitud y longitud?
Solo si resulta aceptable tratarlas como coordenadas planas aproximadas. Para geometría geográfica rigurosa, proyéctelas primero a un sistema cartesiano adecuado.
¿Por qué se ha rechazado mi polígono?
Las causas habituales son menos de tres vértices, coordenadas no finitas, puntos duplicados, aristas de longitud cero, área nula o cruces entre aristas no adyacentes.
¿Cuánto cuesta una solicitud de API?
Cada solicitud de API cuesta $0.002. El mismo cálculo determinista también está disponible en el navegador.
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/geo/polygon-interior-angles \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"vertices":[{"x":0,"y":0},{"x":4,"y":0},{"x":4,"y":3},{"x":0,"y":3}]}'const res = await fetch("https://api.kit.forhosting.com/geo/polygon-interior-angles", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"vertices": [
{
"x": 0,
"y": 0
},
{
"x": 4,
"y": 0
},
{
"x": 4,
"y": 3
},
{
"x": 0,
"y": 3
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/polygon-interior-angles",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"vertices": [
{
"x": 0,
"y": 0
},
{
"x": 4,
"y": 0
},
{
"x": 4,
"y": 3
},
{
"x": 0,
"y": 3
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/polygon-interior-angles", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"vertices":[{"x":0,"y":0},{"x":4,"y":0},{"x":4,"y":3},{"x":0,"y":3}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"vertices":[{"x":0,"y":0},{"x":4,"y":0},{"x":4,"y":3},{"x":0,"y":3}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/polygon-interior-angles", 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
{
"vertices": [
{
"x": 0,
"y": 0
},
{
"x": 4,
"y": 0
},
{
"x": 4,
"y": 3
},
{
"x": 0,
"y": 3
}
]
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.polygon_interior_angles",
"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. |