HHullspring
Ruang kerja kode dengan AI

Selubung cembung titik bilangan bulat

Buat selubung cembung berlawanan jarum jam dari paling banyak 1000 titik bulat, dimulai dari titik terkecil secara leksikografis.

● ● ●Hullspring●
Alur kerja · Selubung cembung titik bilangan bulat ×
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]
✳Selubung cembung titik bilangan bulat
✓ PerubahanTinjau sebelum menerapkan ↗
Ilustrasi ruang kerja
Proyek
Uji masukan kosong, duplikat dan titik segaris, pertahankan hanya ujung terluar dan tolak koordinat pecahan.
Tinjau sebelum menerapkan
Bandingkan perilaku sebenarnya dengan hasil yang diharapkan. Jika pemeriksaan gagal, cari penyebabnya sebelum membuat perubahan lain.
Model
Atur endpoint kompatibel OpenAI atau Anthropic dengan URL dasar dan kunci API jika diperlukan. Uji koneksi. Server model lokal harus berjalan; alat jarak jauh dapat mengirim data secara terpisah.
Alur kerja

Selubung cembung titik bilangan bulat

Alur kerja ↗
Alur kerja
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]
Ruang kerja kode dengan AI

Hubungkan perubahan geometri dengan aplikasi yang menggunakannya

Kode geometri lebih mudah ditinjau jika keluaran yang diperlukan dinyatakan dalam istilah aplikasi. Hullspring adalah ruang kerja pemrograman AI untuk Windows guna menelaah persyaratan itu saat proyek Anda terbuka. Minta model yang terhubung memeriksa perhitungan terkait dan komponen penggunanya sebelum menyarankan perubahan, sehingga usulan menjawab perilaku nyata, bukan sekadar menyusun ulang rumus.

Misalnya, alat seleksi dapat menggunakan batas luar sekumpulan titik. Minta peninjauan tentang pengaruh titik duplikat dan kolinear pada batas itu, dan jelaskan apakah titik antara di tepi harus masuk hasil. Sertakan pemanggil perenderan dan data uji yang representatif. Ini memberi asisten tugas konkret tanpa menganggap ada alat seleksi yang disertakan dalam Hullspring.

Tinjau usulan perbaikan untuk urutan keluaran, validasi masukan, dan kasus kosong, serta bentuk yang lazim. Jalankan proyek dengan sederet titik segaris, koordinat berulang, dan poligon kecil. Bandingkan urutan yang dikembalikan dengan harapan penggunanya; himpunan geometris yang tepat tetap dapat menghasilkan tampilan salah jika konvensi urutan atau penutupannya berbeda.

Hullspring mendukung koneksi model melalui endpoint kompatibel OpenAI atau Anthropic. Model AI abliterasi dapat dipilih jika tersedia, tetapi layanannya menentukan pembatasan, kapasitas konteks, dan alat. Gunakan percakapan untuk memperjelas pilihan implementasi dan tetap dasarkan verifikasi pada data uji proyek sendiri.

Menyiapkan permintaan pemeliharaan geometri

Haruskah titik tepi kolinear tetap ada pada batas?

Nyatakan kebutuhan komponen pengguna Anda. Beberapa penggunaan hanya memerlukan simpul ekstrem, sementara lainnya mempertahankan titik antara. Minta model memeriksa konvensi saat ini dan menjelaskan setiap perubahan kebijakan dalam usulan maupun pengujian.

Mengapa menyertakan kode perenderan dalam peninjauan perhitungan?

Kode itu mungkin mengharapkan urutan penelusuran tertentu atau simpul penutup yang diulang. Perhitungan dapat mengembalikan titik yang dimaksud tetapi melanggar antarmuka itu. Memeriksa penggunanya membantu mencegah koreksi lokal menimbulkan regresi yang terlihat.

Data uji apa yang cepat mengungkap asumsi?

Gunakan himpunan kosong, satu titik, duplikat, garis lurus, dan poligon kecil dengan titik di dalamnya. Tuliskan konvensi keluaran yang diharapkan untuk masing-masing. Jalankan di proyek Anda, bukan hanya mengandalkan gambar bentuk.

Bolehkah perbaikan sekaligus memperluas tipe koordinat yang diterima?

Perlakukan itu sebagai perubahan kontrak terpisah. Representasi numerik berbeda dapat memengaruhi perbandingan dan validasi. Tanyakan alasan perluasannya dan periksa pemanggil sebelum menerimanya sebagai bagian dari koreksi geometri yang semestinya terfokus.

Unduh untuk Windows ↗

Hullspring · Diperbarui 2026-10-25