ForHosting KIT · Viajes y geografía

Envolvente convexa de puntos

Para los puntos (0, 0), (4, 0), (4, 3), (0, 3) y (2, 1), la envolvente convexa es el rectángulo de los cuatro primeros, y (2, 1) queda dentro. Es el contorno que formaría una goma elástica estirada alrededor de sus puntos. Gratis en su navegador.

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

La envolvente convexa es el polígono convexo más pequeño que contiene todos los puntos de un conjunto finito: el contorno de una goma elástica tensada alrededor de clavos en un tablero. Topógrafos, analistas SIG, desarrolladores de juegos y estudiantes de geometría computacional necesitan ese contorno a partir de muestras desordenadas: tracks GPS, huellas de edificios, vértices de sprites o nubes de clase de pares (x, y). Esta herramienta de envolvente convexa de puntos ejecuta el barrido de cadena monótona de Andrew: ordena los puntos por coordenada horizontal y luego vertical, construye las cadenas inferior y superior en pasadas lineales y devuelve los vértices extremos en sentido antihorario. Los puntos interiores y las muestras colineales a mitad de arista se eliminan solos. Puede enviar pares planos x/y o puntos geográficos lat/lon; el modo geo sigue calculando una envolvente plana en el plano longitud–latitud, la aproximación local habitual para sobres a escala de ciudad o de emplazamiento.

Qué es una envolvente convexa y cómo funciona la cadena monótona

Dado un conjunto finito de puntos en el plano, la envolvente convexa es el único conjunto convexo mínimo que los contiene a todos. Su frontera es un polígono convexo cuyos vértices son un subconjunto de la entrada: todo punto extremo que «sobresale» aparece en la envolvente, y todo punto que puede escribirse como combinación convexa de otros queda estrictamente dentro o sobre una arista. La cadena monótona de Andrew (también llamada barrido de cadena monótona) calcula esa frontera en tiempo O(n log n) dominado por la ordenación.

Tras ordenar por x creciente (y por y en empates de x), el algoritmo camina de izquierda a derecha para la envolvente inferior, manteniendo siempre un giro estricto a la izquierda en los tres últimos vértices de la pila; luego camina de derecha a izquierda para la envolvente superior con la misma prueba de giro.

Concatenar ambas cadenas sin duplicar los extremos compartidos más a la izquierda y más a la derecha produce la envolvente completa en sentido antihorario, empezando por el extremo más a la izquierda (y luego más abajo). Una prueba de giro no estricta (producto cruzado menor o igual que cero) elimina puntos colineales intermedios para que cada arista sea maximal.

Los conjuntos degenerados se tratan con claridad: un único punto devuelve una envolvente de un vértice; dos puntos distintos, un segmento de dos vértices; tres o más colineales, solo los dos extremos. Ese comportamiento coincide con las definiciones de aula del casco de puntos extremos y evita «muescas» de área nula en herramientas de polígono posteriores causadas por muestras a mitad de arista.

Contrato de entrada, modos de coordenadas y campos de respuesta

Cada registro puede ser {x, y} para trabajo plano, {lat, lon} para muestras geográficas, o un array de dos números. En modo auto, las claves lat/lon eligen etiquetado geográfico; x/y eligen etiquetado plano. El modo geo valida latitud en [−90, 90] y longitud en [−180, 180] y sigue ejecutando la envolvente en el plano lon–lat (x = longitude, y = latitude).

La precision opcional (0–15, predeterminado 10) fija los decimales de las coordenadas devueltas. El anillo de la envolvente está abierto: el primer vértice no se repite al final. Combine este extremo con calculadoras de área o perímetro solo cuando ya tenga un anillo ordenado; la salida de la envolvente ya está ordenada y lista para esas herramientas cuando necesite métricas del sobre de una nube de puntos en lugar de un polígono digitalizado a mano.

Dónde resulta útil un contorno convexo

Equipos de mapas y logística calculan el sobre convexo de paradas de reparto, pings de activos o hitos de topografía para dibujar un contorno exterior simple sin digitalizar a mano. Canalizaciones de juegos y CAD reducen proxies de colisión o cajas de selección de UI a la envolvente de vértices de malla o sprite para que las pruebas de solapamiento sigan siendo baratas.

Los cuadernos de ciencia de datos usan la envolvente como contorno exterior robusto para diagramas de dispersión y revisión de anomalías cuando un bounding box es demasiado holgado y una forma alfa cóncava es demasiado pesada. Plataformas de aula y concursos necesitan un oráculo determinista para ejercicios de «liste los puntos extremos en orden»; una capacidad parse pura devuelve coordenadas estables a precisión fija para que los calificadores no fallen por ruido flotante. La validación fallida no consume saldo.

Mantenga las nubes bajo el tope de diez mil puntos, fije los vértices de la envolvente en las pruebas y obtendrá sobres reproducibles para ETL SIG, workers de borde y deberes sin montar una biblioteca de geometría completa propia.

Sobre SIG de muestras GPS

Envíe pings lat/lon desordenados de un levantamiento de campo o de la trayectoria de un vehículo y obtenga el contorno convexo antihorario para superposiciones de mapa y bocetos simples de área de servicio.

Proxies de colisión en juegos y CAD

Reduzca una nube de vértices de malla o sprite a una envolvente convexa estricta para colisión de fase amplia y límites de selección sin enviar una biblioteca completa de geometría computacional.

Comprobaciones de geometría computacional en clase

Permita que los estudiantes envíen conjuntos de puntos y verifiquen los vértices extremos ordenados frente a la teoría de la cadena monótona, incluidos casos colineales y duplicados.

¿Cómo calculo la envolvente convexa de un conjunto de puntos?

Envíe points como array de registros {x,y} o {lat,lon} (al menos uno).

¿El modo geográfico usa una envolvente geodésica esférica?

No. El modo geo valida rangos lat/lon y ejecuta una cadena monótona plana en el plano longitud–latitud. Esa aproximación local es estándar para sobres a escala de ciudad y de emplazamiento; las envolventes geodésicas globales quedan fuera de alcance.

¿Se conservan en la envolvente los puntos colineales?

Los puntos colineales intermedios de una arista se eliminan. Solo permanecen los extremos de cada arista de la envolvente, de modo que el polígono es estrictamente convexo (sin giros de 180°).

¿Cuál es el número mínimo de puntos?

Al menos uno. Un único punto devuelve una envolvente de un vértice; dos puntos, un segmento; tres o más no colineales, una envolvente poligonal.

¿En qué orden se devuelven los vértices de la envolvente?

En sentido antihorario, empezando por el punto situado más a la izquierda o, si varios comparten ese borde, por el más bajo de ellos. El anillo queda abierto: el primer vértice no se repite al final.

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-convex-hull

¿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-convex-hull \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"points":[{"x":0,"y":0},{"x":4,"y":0},{"x":4,"y":3},{"x":0,"y":3},{"x":2,"y":1}]}'
{
  "points": [
    {
      "x": 0,
      "y": 0
    },
    {
      "x": 4,
      "y": 0
    },
    {
      "x": 4,
      "y": 3
    },
    {
      "x": 0,
      "y": 3
    },
    {
      "x": 2,
      "y": 1
    }
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "geo.polygon_convex_hull",
  "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.

Qué es una envolvente convexa y cómo funciona la cadena monótona

Las coordenadas exactamente duplicadas se colapsan antes de los barridos para que una esquina repetida no infle hull_count.

Contrato de entrada, modos de coordenadas y campos de respuesta

Envíe un cuerpo JSON con points obligatorio: un array de al menos un registro de coordenadas. Se aceptan los alias vertices, coordinates y coords para el array. El coord_mode opcional es auto (predeterminado), planar o geo. Si acierta, el cuerpo incluye hull (vértices extremos ordenados), hull_count, point_count (longitud de entrada), unique_count (tras quitar duplicados exactos), interior_count (únicos no en la envolvente), method igual a monotone_chain, coord_mode resuelto a planar o geo, y orientation igual a ccw. Points ausentes, un array vacío, números no finitos, latitudes o longitudes fuera de rango en modo geo, o más de diez mil puntos fallan con invalid_input y no se facturan.

Dónde una API de envolvente convexa aporta valor

Como la implementación es parse pura de nivel A, cada llamada correcta cuesta el precio base publicado $0.002 sin tokens de modelo y sin red de salida.

¿Cuánto cuesta la calculadora de envolvente convexa de puntos?

La herramienta del navegador es gratuita. Las peticiones API usan saldo KIT prepago a $0.002 por llamada correcta; la entrada inválida no se factura.

Ver la documentación completa del KIT →