HHullspring
Espacio de programación con IA

Envolventes convexas enteras

Construye una envolvente convexa antihoraria con hasta 1000 puntos enteros, empezando por el menor punto lexicográfico.

● ● ●Hullspring●
Flujos de trabajo · Envolventes convexas enteras ×
def convex_hull(points):
    if type(points) is not list or len(points) > 1000:
        raise ValueError("hull.input")
    if any(type(p) not in (tuple, list) or len(p) != 2 or
           any(type(v) is not int for v in p) for p in points):
        raise ValueError("hull.point")
    ordered = sorted(set(map(tuple, points)))
    if len(ordered) <= 1:
        return ordered
    def turn(a,b,c):
        return (b[0]-a[0])*(c[1]-a[1])-(b[1]-a[1])*(c[0]-a[0])
    def chain(sequence):
        out = []
        for p in sequence:
            while len(out) >= 2 and turn(out[-2],out[-1],p) <= 0:
                out.pop()
            out.append(p)
        return out
    return chain(ordered)[:-1]+chain(reversed(ordered))[:-1]
✳Envolventes convexas enteras
✓ CambiosRevisa antes de aplicar ↗
Vista ilustrativa
Proyecto
Comprueba entrada vacía, duplicados y puntos colineales, conservando solo extremos y rechazando coordenadas fraccionarias.
Revisa antes de aplicar
Compara el comportamiento real con el resultado esperado. Si una prueba falla, investiga la causa antes de hacer más cambios.
Modelos
Configura un endpoint compatible con OpenAI o Anthropic usando la URL base y, si hace falta, una clave API. Prueba la conexión. Un servidor local debe estar en ejecución; las herramientas remotas pueden enviar datos por separado.
Flujos de trabajo

Envolventes convexas enteras

Flujos de trabajo ↗
Flujos de trabajo
def convex_hull(points):
    if type(points) is not list or len(points) > 1000:
        raise ValueError("hull.input")
    if any(type(p) not in (tuple, list) or len(p) != 2 or
           any(type(v) is not int for v in p) for p in points):
        raise ValueError("hull.point")
    ordered = sorted(set(map(tuple, points)))
    if len(ordered) <= 1:
        return ordered
    def turn(a,b,c):
        return (b[0]-a[0])*(c[1]-a[1])-(b[1]-a[1])*(c[0]-a[0])
    def chain(sequence):
        out = []
        for p in sequence:
            while len(out) >= 2 and turn(out[-2],out[-1],p) <= 0:
                out.pop()
            out.append(p)
        return out
    return chain(ordered)[:-1]+chain(reversed(ordered))[:-1]
Espacio de programación con IA

Conecta los cambios geométricos con la aplicación que los utiliza

El código geométrico resulta más fácil de revisar cuando la salida requerida se expresa en términos de la aplicación. Hullspring es un entorno de programación con IA para Windows donde trabajar ese requisito con tu proyecto abierto. Pide al modelo conectado que examine el cálculo pertinente y sus consumidores antes de sugerir cambios, para que la propuesta responda a un comportamiento real y no se limite a reorganizar una fórmula.

Por ejemplo, una herramienta de selección podría utilizar un contorno exterior alrededor de un conjunto de puntos. Solicita una revisión de cómo afectan los puntos duplicados y colineales a ese contorno y explica si los puntos intermedios de los bordes deben incluirse en el resultado. Incluye el código llamador de renderizado y casos de prueba representativos. Así das al asistente una tarea concreta sin suponer que Hullspring incluya una herramienta de selección.

Revisa el orden de salida, la validación de entrada y el caso vacío del parche propuesto, además de la forma habitual. Ejecuta tu proyecto con una línea de puntos, coordenadas repetidas y un polígono pequeño. Compara la secuencia devuelta con las expectativas del consumidor; el conjunto geométrico correcto puede producir una visualización incorrecta si difieren las convenciones de orden o cierre.

Hullspring admite conexiones a modelos mediante endpoints compatibles con OpenAI o de Anthropic. Puede seleccionarse un modelo de IA ablacionado cuando esté disponible, pero su servicio determina las restricciones, la capacidad de contexto y las herramientas. Utiliza la conversación para aclarar tus decisiones de implementación y basa la verificación en los casos de prueba del propio proyecto.

Preparar una solicitud de mantenimiento geométrico

¿Deben permanecer en el contorno los puntos colineales de los bordes?

Indica el requisito de tu consumidor. Algunos usos solo necesitan los vértices extremos, mientras que otros conservan puntos intermedios. Pide al modelo que examine la convención actual y explicite cualquier cambio de política tanto en la propuesta como en las pruebas.

¿Por qué incluir el código de renderizado en la revisión de un cálculo?

Puede esperar un orden de recorrido específico o un vértice de cierre repetido. Un cálculo puede devolver los puntos previstos y aun así incumplir esa interfaz. Examinar el consumidor ayuda a evitar que una corrección local cree una regresión visible.

¿Qué casos de prueba ayudan a detectar suposiciones rápidamente?

Utiliza un conjunto vacío, un punto, duplicados, una línea recta y un polígono pequeño con un punto interior. Escribe la convención de salida esperada para cada uno. Ejecútalos en tu proyecto en lugar de depender solo de una figura dibujada.

¿Puede un parche ampliar incidentalmente los tipos de coordenadas aceptados?

Trátalo como un cambio de contrato separado. Distintas representaciones numéricas pueden afectar a las comparaciones y la validación. Pregunta por qué es necesaria la ampliación y comprueba el código llamador antes de aceptarla como parte de una corrección geométrica que, por lo demás, es específica.

Descargar para Windows ↗

Hullspring · Actualizado 2026-10-25