HHullspring
Ambiente di sviluppo con IA

Inviluppi convessi interi

Costruisci un inviluppo convesso antiorario di al massimo 1000 punti interi partendo dal minimo lessicografico.

● ● ●Hullspring●
Flussi di lavoro · Inviluppi convessi interi ×
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]
✳Inviluppi convessi interi
✓ ModificheControlla prima di applicare ↗
Illustrazione dell’ambiente
Progetto
Prova ingresso vuoto, duplicati e punti collineari, conservando solo gli estremi e rifiutando coordinate frazionarie.
Controlla prima di applicare
Confronta il comportamento effettivo con il risultato atteso. Se una verifica fallisce, indaga la causa prima di altre modifiche.
Modelli
Configura un endpoint compatibile con OpenAI o Anthropic usando URL di base e chiave API, se necessaria. Prova la connessione. Il server locale deve essere in esecuzione; gli strumenti remoti possono trasmettere dati separatamente.
Flussi di lavoro

Inviluppi convessi interi

Flussi di lavoro ↗
Flussi di lavoro
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]
Ambiente di sviluppo con IA

Collega le modifiche geometriche all’applicazione che le usa

Il codice geometrico diventa più facile da esaminare quando l'output richiesto è definito in termini applicativi. Hullspring è un ambiente di programmazione con IA per Windows in cui affrontare questo requisito con il progetto aperto. Chiedi al modello connesso di esaminare il calcolo pertinente e chi lo usa prima di suggerire modifiche, affinché la proposta risponda a un comportamento reale invece di limitarsi a riordinare una formula.

Per esempio, uno strumento di selezione potrebbe usare un contorno esterno attorno a un insieme di punti. Richiedi una revisione dell'effetto dei punti duplicati e collineari sul contorno e spiega se i punti intermedi dei bordi debbano far parte del risultato. Includi il chiamante che esegue il rendering e casi di prova rappresentativi. Questo offre all'assistente un'attività concreta senza presumere che Hullspring includa uno strumento di selezione.

Esamina una modifica proposta per ordine dell'output, convalida dell'input e caso vuoto, oltre alla forma tipica. Esegui il progetto con punti su una retta, coordinate ripetute e un piccolo poligono. Confronta la sequenza restituita con le aspettative di chi la usa: l'insieme geometrico corretto può comunque produrre una visualizzazione errata se differiscono le convenzioni di ordinamento o chiusura.

Hullspring supporta connessioni a modelli tramite endpoint compatibili con OpenAI o Anthropic. Puoi selezionare un modello IA abliterato dove disponibile, ma è il suo servizio a determinare restrizioni, capacità di contesto e strumenti. Usa la conversazione per chiarire le scelte implementative e mantieni la verifica ancorata ai casi di prova del progetto.

Preparare una richiesta di manutenzione geometrica

I punti collineari sui bordi devono rimanere nel contorno?

Specifica il requisito di chi usa il risultato. Alcuni usi richiedono solo i vertici estremi, altri preservano i punti intermedi. Chiedi al modello di esaminare la convenzione attuale e rendere esplicito qualsiasi cambiamento di politica nella proposta e nei test.

Perché includere il codice di rendering nella revisione di un calcolo?

Potrebbe aspettarsi un ordine di percorrenza specifico o un vertice finale ripetuto per la chiusura. Un calcolo può restituire i punti previsti ma violare quell’interfaccia. Esaminare chi usa il risultato aiuta a evitare che una correzione locale crei una regressione visibile.

Quali casi di prova fanno emergere rapidamente le ipotesi?

Usa un insieme vuoto, un punto, duplicati, una retta e un piccolo poligono con un punto interno. Scrivi la convenzione di output attesa per ciascuno. Eseguili nel progetto senza affidarti soltanto a una forma disegnata.

Una modifica può ampliare incidentalmente i tipi di coordinate accettati?

Consideralo un cambiamento distinto del contratto. Rappresentazioni numeriche diverse possono influenzare confronti e convalida. Chiedi perché sia necessaria l’estensione e controlla i chiamanti prima di accettarla come parte di una correzione geometrica altrimenti mirata.

Scarica per Windows ↗

Hullspring · Aggiornato 2026-10-25