Body kvadratické Bézierovy křivky
Vyhodnoťte bod kvadratické Bézierovy křivky ze tří dvourozměrných řídicích bodů s velikostí nejvýše 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]))- Projekt
- Ověřte konce a střed a odmítněte nekonečné souřadnice či parametr mimo nulu až jednu bez změny bodů.
- Před použitím zkontrolujte
- Porovnejte skutečné chování s očekávaným výsledkem. Pokud kontrola selže, před dalšími změnami zjistěte příčinu.
- Modely
- Nastavte endpoint kompatibilní s OpenAI nebo Anthropic pomocí základní URL a případného API klíče. Otestujte připojení. Lokální server modelu musí běžet; vzdálené nástroje mohou data odesílat samostatně.
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]))Zahrňte vizuální očekávání do kontroly kódu
Křivka, která vypadá špatně, může odrážet datovou konvenci, nikoli chybný vzorec. CurveHearth je prostředí pro programování s AI ve Windows, které propojuje viditelný výsledek s implementací projektu. Začněte očekávaným tvarem, řídicími daty a komponentou, která je používá, a požádejte připojený model o kontrolu cesty mezi nimi.
Jednou z možných úloh je kontrola pomocné funkce kvadratické křivky používané v náhledu editoru. Požádejte asistenta, aby prozkoumal pořadí řídicích bodů, meze parametru a způsob předávání souřadnic volajícím. O cílenou opravu požádejte až po vyjasnění těchto předpokladů. Náhled je příklad úlohy v aplikaci; užitečným výsledkem je kód, kterému rozumíte a který můžete ověřit ve vlastním projektu.
Ověřte návrh pomocí přesných testovacích případů pro krajní body a jedné mezilehlé hodnoty, potom prohlédněte vykreslený výsledek v souřadnicovém systému aplikace. Zahrňte neplatné hodnoty, nekonečna a NaN, pokud je funkce podle svého kontraktu odmítá. Spusťte příslušné testy projektu a hledejte nevyžádané změny přijímaných rozsahů, protože vizuální zlepšení může skrývat širší změnu kontraktu.
CurveHearth se připojuje k podporovaným koncovým bodům kompatibilním s OpenAI nebo koncovým bodům Anthropic. Zvolte model AI bez cenzury, pokud je prostřednictvím vaší služby dostupný; jeho nástroje, kontext a omezení stále závisejí na nastavení. Rozhovor podporuje vaši kontrolu, zatímco testovací data a kontroly rozhraní určují, zda úprava splňuje požadavek.
Otázky ke změně interpolace
Jaký kontext pomůže vysvětlit deformovanou křivku?
Dodejte řídicí body ve skutečném pořadí, hodnotu parametru a souřadnicovou konvenci volajícího. Přiložte očekávaný vizuální výsledek. Tyto podrobnosti pomáhají odlišit chybu interpolace od předpokladu transformace či zobrazení jinde v aplikaci.
Stačí ověřit krajní body?
Je to užitečné, ale neúplné. Implementace může správně vracet oba krajní body, a přesto vytvářet chybné mezilehlé hodnoty. Přidejte alespoň jeden nezávisle vypočtený vnitřní testovací bod a ověřte vizuální průběh v aplikaci, která jej používá.
Má funkce přijímat hodnoty mimo současný interval?
Než rozsah rozšíříte, rozhodněte, zda extrapolace patří do kontraktu. Zjistěte, kteří volající ji potřebují a jak se dnes zachází s neplatnými vstupy. Rozšíření rozsahu uveďte výslovně, místo abyste je skryli v opravě interpolace.
Může CurveHearth potvrdit vzhled bez spuštění mého editoru?
Nepředpokládejte, že kontrola kódu prokazuje vykreslený výsledek. Skutečné transformace souřadnic a zobrazení ověřte v editoru nebo aplikaci. Navržený výpočet prověřte samostatně a potom ověřte, že jeho integrace vytváří zamýšlený tvar.
CurveHearth · Aktualizováno 2026-10-25