Titik Bézier kuadratik
Hitung titik Bézier kuadratik dari tiga kontrol dua dimensi bermagnitudo paling besar 1e100.
from math import isfinite
def quadratic_bezier(points, t):
def valid(v):
return type(v) in (int, float) and -1e100 <= v <= 1e100 and isfinite(v)
if type(points) not in (list, tuple) or len(points) != 3:
raise ValueError("three control points")
if any(type(p) not in (list, tuple) or len(p) != 2 or not all(map(valid,p)) for p in points):
raise ValueError("bounded finite 2D controls")
if not valid(t) or not 0 <= t <= 1: raise ValueError("parameter 0 through 1")
def mix(a,b): return tuple((1-t)*x+t*y for x,y in zip(a,b))
return mix(mix(points[0],points[1]),mix(points[1],points[2]))- Proyek
- Uji kedua ujung dan titik tengah, lalu tolak koordinat tidak hingga atau parameter di luar nol sampai satu tanpa mengubah kontrol.
- 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.
from math import isfinite
def quadratic_bezier(points, t):
def valid(v):
return type(v) in (int, float) and -1e100 <= v <= 1e100 and isfinite(v)
if type(points) not in (list, tuple) or len(points) != 3:
raise ValueError("three control points")
if any(type(p) not in (list, tuple) or len(p) != 2 or not all(map(valid,p)) for p in points):
raise ValueError("bounded finite 2D controls")
if not valid(t) or not 0 <= t <= 1: raise ValueError("parameter 0 through 1")
def mix(a,b): return tuple((1-t)*x+t*y for x,y in zip(a,b))
return mix(mix(points[0],points[1]),mix(points[1],points[2]))Sertakan harapan visual dalam peninjauan kode
Kurva yang tampak salah mungkin mencerminkan konvensi data, bukan rumus yang rusak. CurveHearth adalah ruang kerja pemrograman AI Windows untuk menghubungkan hasil yang terlihat dengan implementasi proyek. Mulailah dari bentuk yang diharapkan, data kontrol, dan komponen pemakainya, lalu minta model terhubung memeriksa alur di antaranya.
Salah satu tugas yang mungkin adalah meninjau fungsi bantu kurva kuadratik untuk pratinjau editor. Minta asisten memeriksa urutan titik kontrol, batas parameter, dan cara pemanggil memasok koordinat. Mintalah perubahan terarah hanya setelah asumsi tersebut jelas. Pratinjau itu merupakan contoh tugas aplikasi; hasil yang berguna adalah kode yang dapat Anda pahami dan verifikasi dalam proyek sendiri.
Periksa usulan dengan kasus uji tepat pada titik ujung dan satu nilai antara, lalu periksa hasil render menggunakan sistem koordinat aplikasi. Sertakan masukan tidak valid atau tidak finit jika fungsi bantu menjanjikan penolakannya. Jalankan pengujian proyek yang relevan dan cari perubahan rentang yang diterima tanpa diminta, karena perbaikan visual dapat menyembunyikan perubahan kontrak yang lebih luas.
CurveHearth terhubung ke endpoint yang kompatibel dengan OpenAI atau endpoint Anthropic yang didukung. Pilih model AI tanpa sensor jika tersedia melalui layanan Anda; alat, konteks, dan batasannya tetap bergantung pada pengaturan. Percakapan mendukung peninjauan, sedangkan kasus uji dan pemeriksaan antarmuka menentukan apakah suntingan memenuhi kebutuhan.
Pertanyaan untuk perubahan interpolasi
Konteks apa yang membantu menjelaskan kurva terdistorsi?
Berikan titik kontrol dalam urutan sebenarnya, nilai parameter, dan konvensi koordinat pemanggil. Sertakan hasil visual yang diharapkan. Rincian itu membantu membedakan kesalahan interpolasi dari asumsi transformasi atau tampilan di bagian lain aplikasi.
Apakah pemeriksaan titik ujung cukup?
Berguna, tetapi belum lengkap. Implementasi dapat mengembalikan kedua titik ujung dengan benar namun menghasilkan nilai antara yang salah. Tambahkan setidaknya satu kasus uji bagian dalam yang dihitung secara independen dan periksa jalur visual dalam aplikasi pemakainya.
Haruskah fungsi bantu menerima nilai di luar interval saat ini?
Putuskan apakah ekstrapolasi termasuk kontrak sebelum memperluas rentang. Tanyakan pemanggil mana yang membutuhkannya dan bagaimana masukan tidak valid ditangani sekarang. Nyatakan perluasan rentang secara eksplisit, bukan menyembunyikannya dalam koreksi interpolasi.
Bisakah CurveHearth memastikan tampilan tanpa menjalankan editor saya?
Jangan menganggap pemeriksaan kode membuktikan hasil render. Gunakan editor atau aplikasi untuk memeriksa transformasi koordinat dan tampilan sebenarnya. Tinjau perhitungan yang diusulkan secara terpisah, lalu verifikasi bahwa integrasinya menghasilkan bentuk yang dimaksud.
CurveHearth · Diperbarui 2026-10-25