HHullspring
Środowisko programowania z AI

Otoczki wypukłe z całkowitych punktów

Zbuduj otoczkę wypukłą przeciwnie do ruchu wskazówek zegara z maksymalnie 1000 punktów całkowitych, zaczynając od minimum leksykograficznego.

● ● ●Hullspring●
Sposoby pracy · Otoczki wypukłe z całkowitych punktów ×
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]
✳Otoczki wypukłe z całkowitych punktów
✓ ZmianySprawdź przed zastosowaniem ↗
Ilustracja środowiska
Projekt
Sprawdź pusty zbiór, duplikaty i punkty współliniowe, zachowując tylko skrajne końce i odrzucając ułamkowe współrzędne.
Sprawdź przed zastosowaniem
Porównaj rzeczywiste zachowanie z oczekiwanym wynikiem. Jeśli sprawdzenie się nie powiedzie, wyjaśnij przyczynę przed kolejnymi zmianami.
Modele
Dodaj endpoint zgodny z OpenAI lub Anthropic, podając bazowy URL i klucz API, jeśli jest wymagany. Sprawdź połączenie. Lokalny serwer modelu musi działać; zdalne narzędzia mogą przesyłać dane oddzielnie.
Sposoby pracy

Otoczki wypukłe z całkowitych punktów

Sposoby pracy ↗
Sposoby pracy
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]
Środowisko programowania z AI

Połącz zmiany geometrii z korzystającą z nich aplikacją

Kod geometrii łatwiej ocenić, gdy wymagany wynik opisano w kategoriach aplikacji. Hullspring to środowisko programistyczne AI dla Windows do pracy nad tym wymaganiem w otwartym projekcie. Poproś podłączony model o sprawdzenie odpowiedniego obliczenia i jego odbiorców przed zasugerowaniem zmian, aby propozycja odpowiadała rzeczywistemu zachowaniu, a nie tylko przestawiała wzór.

Na przykład narzędzie zaznaczania może używać zewnętrznej granicy zbioru punktów. Poproś o przegląd wpływu duplikatów i punktów współliniowych na tę granicę oraz wyjaśnij, czy pośrednie punkty krawędzi mają znaleźć się w wyniku. Dołącz kod renderujący i reprezentatywne dane testowe. Daje to asystentowi konkretne zadanie bez zakładania, że Hullspring zawiera jakiekolwiek narzędzie zaznaczania.

Sprawdź proponowaną poprawkę pod kątem kolejności wyniku, walidacji wejścia i przypadku pustego, a także typowego kształtu. Uruchom projekt z punktami na prostej, powtarzającymi się współrzędnymi i małym wielokątem. Porównaj zwróconą sekwencję z oczekiwaniami odbiorcy; poprawny zbiór geometryczny może dać błędny obraz, gdy różnią się konwencje kolejności lub domknięcia.

Hullspring obsługuje połączenia z modelami przez punkty końcowe zgodne z OpenAI lub punkty końcowe Anthropic. Model AI typu abliterated można wybrać tam, gdzie jest dostępny, ale to jego usługa określa ograniczenia, pojemność kontekstu i narzędzia. Wykorzystaj rozmowę do wyjaśnienia wyborów implementacyjnych i oprzyj weryfikację na danych testowych projektu.

Przygotowanie zadania utrzymania kodu geometrii

Czy współliniowe punkty krawędzi powinny pozostać na granicy?

Podaj wymaganie odbiorcy. Niektóre zastosowania potrzebują tylko skrajnych wierzchołków, inne zachowują punkty pośrednie. Poproś model o sprawdzenie obecnej konwencji i jawne opisanie każdej zmiany reguły w propozycji oraz testach.

Dlaczego dołączać kod renderujący do przeglądu obliczenia?

Może oczekiwać określonej kolejności przechodzenia lub powtórzonego wierzchołka zamykającego. Obliczenie może zwracać zamierzone punkty, a mimo to naruszać ten interfejs. Sprawdzenie odbiorcy pomaga zapobiec widocznej regresji wskutek lokalnej poprawki.

Jakie dane testowe szybko ujawniają założenia?

Użyj pustego zbioru, jednego punktu, duplikatów, prostej i małego wielokąta z punktem wewnętrznym. Zapisz oczekiwaną konwencję wyniku dla każdego przypadku. Uruchom je w projekcie, zamiast polegać wyłącznie na narysowanym kształcie.

Czy poprawka może przy okazji rozszerzyć akceptowane typy współrzędnych?

Potraktuj to jako osobną zmianę kontraktu. Różne reprezentacje liczbowe mogą wpływać na porównania i walidację. Zapytaj, dlaczego rozszerzenie jest potrzebne, i sprawdź kod wywołujący przed przyjęciem go jako części ściśle określonej poprawki geometrii.

Pobierz dla Windows ↗

Hullspring · Zaktualizowano 2026-10-25