ForHosting KIT · Viajes y geografía

Prueba de convexidad de polígono

El rectángulo (0, 0), (4, 0), (4, 3), (0, 3) es convexo: todas sus esquinas giran hacia el mismo lado, en sentido antihorario. La punta de flecha (0, 0), (3, 1), (0, 2), (1, 1) mezcla giros a izquierda y derecha, así que es cóncava. Gratis en su navegador.

  • Gratis
  • Funciona en su navegador
  • Sin registro
  • Sus datos no salen de su equipo
Úselo desde WebAPIEmailTelegramApp pronto

Una prueba de convexidad de polígono responde a una pregunta fundamental de geometría computacional: dada una cadena ordenada de vértices cartesianos, ¿cada ángulo interior se mantiene en a lo sumo ciento ochenta grados de modo que la forma nunca se hunda hacia adentro? Agrimensores que validan parcelas catastrales, desarrolladores de juegos que definen cascos de colisión, equipos GIS que limpian polígonos de geovallas, exportadores CAD que exigen restricciones de convexidad y herramientas de aula que califican ejercicios de polígonos simples necesitan una respuesta determinista de sí o no sin levantar una biblioteca geométrica completa. Esta capacidad acepta una lista ordenada de vértices, recorre el anillo cerrado una sola vez y compara el producto cruzado bidimensional de cada par de aristas consecutivas. Cuando todo producto cruzado no nulo comparte el mismo signo, cada giro va en el mismo sentido y el polígono es convexo; signos mixtos indican al menos un ángulo reflejo y el polígono es cóncavo. Los productos cruzados nulos marcan vértices colineales y se permiten sin romper la convexidad.

Cómo los productos cruzados de aristas consecutivas deciden la convexidad

Etiquete los vértices ordenados V cero hasta V n menos uno y cierre el anillo tratando la arista del último vértice al primero como presente aunque quien llama no repita el punto inicial. En cada vértice B con vértice previo A y siguiente C, forme los vectores salientes de A a B y de B a C. Su producto cruzado bidimensional es el escalar z igual a (B.x menos A.x) por (C.y menos B.y) menos (B.y menos A.y) por (C.x menos B.x).

El signo de z es la dirección de giro en B: positivo para un giro a la izquierda cuando el plano se orienta con y hacia arriba y x a la derecha (recorrido antihorario del contorno), negativo para un giro a la derecha (recorrido horario) y cero cuando A, B y C son colineales.

Un polígono simple es convexo si y solo si todo giro no nulo comparte el mismo signo, lo que significa que cada ángulo interior es a lo sumo ciento ochenta grados y el contorno nunca invierte su sentido de giro. Giros positivos y negativos mezclados demuestran un ángulo interior reflejo en algún punto del anillo, de modo que el polígono es cóncavo.

El algoritmo es estrictamente O(n) en el número de vértices tras un único paso de normalización que elimina un duplicado final del primer punto cuando quien llama ya cerró el anillo.

Cuándo conviene comprobar la convexidad

Las canalizaciones de cartografía y GIS usan una prueba de convexidad de polígono antes de algoritmos que asumen entrada convexa: recorte contra una ventana convexa, descomposición de regiones complejas o alimentadores de solvers que rechazan vértices reflejos. Motores de juegos y simulación validan mallas de colisión definidas por diseñadores para que un solo hundimiento no rompa después hipótesis de ejes de separación o GJK. Exportadores CAD y de fabricación imponen restricciones de convexidad en piezas en bruto y polígonos de soporte antes de enviar geometría a un cortador.

Plataformas educativas califican ítems «¿es convexo este polígono?» con un oráculo determinista que trata de forma coherente los vértices colineales a mitad de arista en lugar de confiar en el ojo. La validación fallida no consume saldo.

Validación de geovallas y parcelas GIS

Rechace o marque anillos catastrales y de geovalla cóncavos antes de canalizaciones que asumen polígonos convexos para recorte, buffer o cálculo de área.

Comprobaciones de cascos de colisión en juegos

Valide polígonos de colisión 2D definidos por diseñadores para que los algoritmos dependientes de la convexidad nunca reciban un casco abollado en tiempo de ejecución.

Calificación automática en aula y exámenes

Califique ítems «¿es convexo este polígono?» con un oráculo determinista de productos cruzados alineado con las definiciones de dirección de giro del libro de texto.

¿Cómo comprueba usted si un polígono es convexo?

Envíe vértices ordenados como pares {x, y} o [x, y] (al menos tres).

¿Qué ocurre si algunos vértices consecutivos son colineales?

Se permiten productos cruzados nulos. Los puntos colineales a mitad de arista no rompen por sí solos la convexidad; solo giros mixtos a izquierda y derecha marcan un polígono cóncavo.

¿Importa el orden de los vértices (horario frente a antihorario)?

Cualquier orientación coherente es válida. La respuesta reporta orientation como clockwise o counterclockwise cuando es convexo, y mixed cuando los giros no coinciden.

¿Qué ocurre con menos de tres vértices?

Una prueba de convexidad de polígono necesita al menos tres vértices; la entrada inválida no se factura.

¿Qué indica el resultado además del sí o el no?

Da el sentido de giro del anillo: antihorario, horario, mixto en una figura cóncava o alineado cuando todos los puntos están sobre una recta. También cuenta los giros reales y los vértices donde el contorno sigue recto.

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.

POSThttps://api.kit.forhosting.com/geo/polygon-is-convex

¿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.

curl -X POST https://api.kit.forhosting.com/geo/polygon-is-convex \
  -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}]}'
{
  "vertices": [
    {
      "x": 0,
      "y": 0
    },
    {
      "x": 4,
      "y": 0
    },
    {
      "x": 4,
      "y": 3
    },
    {
      "x": 0,
      "y": 3
    }
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "geo.polygon_is_convex",
  "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.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

Cómo los productos cruzados de aristas consecutivas deciden la convexidad

Cuando todo producto cruzado es cero los vértices yacen en una sola recta; la forma no tiene área y este endpoint reporta is_convex false con orientation collinear en lugar de inventar un casco convexo.

Contrato de entrada, forma de la respuesta y comportamiento de error

Un vértice final idéntico al primero se elimina automáticamente, de modo que funcionan tanto anillos cerrados estilo GeoJSON como listas abiertas de aula. Ejemplo: el cuadrado (0,0), (4,0), (4,3), (0,3) es convexo con orientación antihoraria. Envíe por POST un cuerpo JSON con un campo obligatorio: vertices, un arreglo ordenado de al menos tres puntos. Cada punto puede ser un objeto con x e y finitos (o alias lon y lat) o un arreglo de dos elementos [x, y]. Se aceptan los alias points, polygon y coords con el mismo significado para que cargas GIS existentes se integren sin renombrar. Menos de tres vértices tras esa normalización, cargas que no son arreglos, coordenadas ausentes y números no finitos fallan con invalid_input y no se facturan. En caso de éxito el cuerpo incluye is_convex como booleano; n como el conteo normalizado de vértices; orientation como counterclockwise, clockwise, mixed o collinear; turn_count como el número de giros no nulos; zero_turns como el conteo colineal; una cadena formula que reexpresa la identidad del producto cruzado; y vertices repetidos como objetos {x, y} en orden de anillo. El dardo cóncavo (0,0), (3,1), (0,2), (1,1) mezcla signos de giro y devuelve is_convex false. Combine el booleano con su propio código de dibujo si necesita un croquis; este endpoint solo clasifica convexidad y no emite gráficos, cascos ni triangulación.

Dónde una API de convexidad de polígono aporta valor real

Como la implementación es parse de nivel A puro, cada llamada exitosa cuesta el precio base publicado $0.002 sin tokens de modelo ni red saliente. Mantenga anillos modestos, fije is_convex y orientation en las pruebas y obtendrá etiquetas de convexidad reproducibles para geovallas, comprobaciones de aula y workers en el borde sin desplegar una pila completa de geometría computacional propia.

¿Cuánto cuesta la prueba de convexidad de polígono?

La herramienta en el navegador es gratuita. Las solicitudes API usan saldo prepago KIT a $0.002 por llamada exitosa; la entrada inválida no se factura.

Ver la documentación completa del KIT →