HHullspring
AI-werkruimte voor code

Convexe omhulsels met gehele coördinaten

Maak een tegenwijzerzin gerichte convexe omhulling van maximaal 1000 gehele punten, beginnend bij het lexicografisch kleinste punt.

● ● ●Hullspring●
Werkprocessen · Convexe omhulsels met gehele coördinaten ×
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]
✳Convexe omhulsels met gehele coördinaten
✓ WijzigingenControleer vóór het toepassen ↗
Illustratie van de werkruimte
Project
Test lege invoer, duplicaten en collineaire punten, behoud alleen uiterste eindpunten en weiger gebroken coördinaten.
Controleer vóór het toepassen
Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen.
Modellen
Stel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen.
Werkprocessen

Convexe omhulsels met gehele coördinaten

Werkprocessen ↗
Werkprocessen
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]
AI-werkruimte voor code

Verbind geometriewijzigingen met de toepassing die ze gebruikt

Geometriecode is eenvoudiger te beoordelen als de vereiste uitvoer in toepassingstermen is beschreven. Hullspring is een AI-programmeeromgeving voor Windows waarin je die eis met je project geopend kunt uitwerken. Vraag het verbonden model de relevante berekening en haar afnemers te onderzoeken voordat het wijzigingen voorstelt, zodat het voorstel werkelijk gedrag aanpakt en niet alleen een formule herschikt.

Een selectietool kan bijvoorbeeld een buitengrens rond een verzameling punten gebruiken. Vraag om een beoordeling van de invloed van dubbele en collineaire punten op die grens en leg uit of tussenliggende randpunten in het resultaat thuishoren. Voeg de renderende aanroepende code en representatieve testgevallen toe. Dat geeft de assistent een concrete taak zonder te veronderstellen dat Hullspring een selectietool bevat.

Beoordeel bij een voorgestelde patch de uitvoervolgorde, invoervalidatie en het lege geval, naast de gebruikelijke vorm. Voer je project uit met punten op een lijn, herhaalde coördinaten en een kleine veelhoek. Vergelijk de teruggegeven reeks met de verwachtingen van de afnemer; de juiste geometrische verzameling kan toch een verkeerde weergave opleveren als de volgorde- of sluitingsconventies verschillen.

Hullspring ondersteunt modelverbindingen via OpenAI-compatibele of Anthropic-endpoints. Een geablitereerd AI-model kan worden gekozen waar beschikbaar, maar de dienst bepaalt beperkingen, contextcapaciteit en tools. Gebruik het gesprek om implementatiekeuzes te verduidelijken en blijf verifiëren met de eigen testgevallen van het project.

Een verzoek voor geometrieonderhoud voorbereiden

Moeten collineaire randpunten in de grens blijven?

Geef aan wat de afnemer nodig heeft. Sommige toepassingen vereisen alleen uiterste hoekpunten, andere behouden tussenliggende punten. Vraag het model de huidige conventie te onderzoeken en elke beleidswijziging expliciet te maken in zowel voorstel als tests.

Waarom rendercode opnemen bij de beoordeling van een berekening?

Die kan een bepaalde doorloopvolgorde of een herhaald sluitend hoekpunt verwachten. Een berekening kan de bedoelde punten teruggeven en toch die interface schenden. Onderzoek van de afnemer helpt voorkomen dat een lokale correctie een zichtbare regressie veroorzaakt.

Welke testgevallen leggen aannames snel bloot?

Gebruik een lege verzameling, één punt, dubbele punten, een rechte lijn en een kleine veelhoek met een binnenpunt. Beschrijf voor elk geval de verwachte uitvoerconventie. Voer ze in je project uit in plaats van alleen op een getekende vorm te vertrouwen.

Mag een patch terloops meer coördinaattypen accepteren?

Behandel dat als een afzonderlijke wijziging van de afspraken. Verschillende numerieke weergaven kunnen vergelijkingen en validatie beïnvloeden. Vraag waarom de uitbreiding nodig is en controleer aanroepers voordat je haar accepteert als onderdeel van een verder gerichte geometriecorrectie.

Download voor Windows ↗

Hullspring · Bijgewerkt 2026-10-25