Punten op kwadratische Béziercurven
Bereken een kwadratisch Bézierpunt uit drie tweedimensionale controlepunten met absolute waarde hoogstens 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]))- Project
- Controleer eindpunten en midden en weiger niet-eindige coördinaten of een parameter buiten nul tot één zonder de controles te wijzigen.
- Controleer vóór het toepassen
- Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen.
- Modellen
- Stel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen.
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]))Betrek visuele verwachtingen bij de codebeoordeling
Een curve die er verkeerd uitziet, kan op een gegevensconventie wijzen in plaats van een foutieve formule. CurveHearth is een Windows-programmeerwerkruimte met AI die dat zichtbare resultaat verbindt met de implementatie van uw project. Begin met de verwachte vorm, de controlepunten en het onderdeel dat ze gebruikt. Vraag het verbonden model vervolgens om het traject daartussen te onderzoeken.
Een mogelijke taak is het beoordelen van een hulpfunctie voor kwadratische curven die een editorvoorbeeldweergave gebruikt. Laat de assistent de volgorde van controlepunten, parametergrenzen en de aanlevering van coördinaten door de aanroepende code onderzoeken. Vraag pas om een gerichte wijziging nadat die aannames duidelijk zijn. De voorbeeldweergave is een voorbeeld van een toepassingstaak; het bruikbare resultaat is code die u in uw eigen project kunt begrijpen en verifiëren.
Controleer het voorstel met exacte testgevallen voor de eindpunten en een tussenwaarde. Inspecteer vervolgens het weergegeven resultaat in het coördinatenstelsel van de toepassing. Neem ongeldige of niet-eindige invoer op als de hulpfunctie belooft die af te wijzen. Voer de relevante projecttests uit en let op ongevraagde wijzigingen in toegestane bereiken, want een visuele verbetering kan een bredere contractwijziging verbergen.
CurveHearth maakt verbinding met ondersteunde OpenAI-compatibele of Anthropic-eindpunten. Selecteer een AI-model zonder censuur als uw dienst dat aanbiedt; de hulpmiddelen, context en beperkingen blijven afhankelijk van de configuratie. Het gesprek ondersteunt uw beoordeling, terwijl uw testgevallen en interfacecontroles bepalen of de wijziging aan de vereiste voldoet.
Vragen bij een interpolatiewijziging
Welke context helpt een vervormde curve verklaren?
Geef de controlepunten in hun werkelijke volgorde, de parameterwaarde en de coördinaatconventie van de aanroepende code. Voeg het verwachte visuele resultaat toe. Zo kan een interpolatiefout worden onderscheiden van een transformatie- of weergaveaanname elders in de toepassing.
Zijn eindpuntcontroles voldoende?
Ze zijn nuttig, maar onvolledig. Een implementatie kan beide eindpunten correct teruggeven en toch verkeerde tussenwaarden produceren. Voeg minstens één onafhankelijk berekend testgeval binnen het interval toe en controleer het visuele verloop in de toepassing die het gebruikt.
Moet de hulpfunctie waarden buiten het huidige interval accepteren?
Beslis of extrapolatie binnen het contract hoort voordat u het bereik uitbreidt. Vraag welke aanroepende code dit nodig heeft en hoe ongeldige invoer nu wordt afgehandeld. Maak een bereikuitbreiding expliciet in plaats van die in een interpolatiecorrectie te verbergen.
Kan CurveHearth de weergave bevestigen zonder mijn editor uit te voeren?
Ga er niet van uit dat code-inspectie het weergegeven resultaat bewijst. Gebruik uw editor of toepassing om de daadwerkelijke coördinatentransformaties en weergave te controleren. Beoordeel de voorgestelde berekening afzonderlijk en verifieer vervolgens of de integratie de bedoelde vorm oplevert.
CurveHearth · Bijgewerkt 2026-10-25