from fractions import Fraction
def barycentric(vertices, point):
vertices, point = tuple(tuple(v) for v in vertices), tuple(point)
if len(vertices) != 3 or any(len(v) != 2 for v in vertices) or len(point) != 2:
raise ValueError("triangle.shape")
if any(type(c) is not int or abs(c) > 10000 for v in vertices + (point,) for c in v):
raise ValueError("coordinate.range")
(x0, y0), (x1, y1), (x2, y2) = vertices
x, y = point
den = (y1-y2)*(x0-x2) + (x2-x1)*(y0-y2)
if den == 0:
raise ValueError("triangle.degenerate")
a = Fraction((y1-y2)*(x-x2) + (x2-x1)*(y-y2), den)
b = Fraction((y2-y0)*(x-x2) + (x0-x2)*(y-y2), den)
return a, b, 1-a-b
✳Berechnen Sie exakte baryzentrische Gewichte für drei ganzzahlige Eckpunkte und einen Punkt mit Koordinatenbeträgen bis 10000.
✓ ÄnderungenVor dem Anwenden prüfen ↗
Illustration der Arbeitsumgebung
Projekt
Testen Sie einen Eckpunkt und einen Außenpunkt, lehnen Sie kollineare Ecken ab und prüfen Sie die Rekonstruktion des Punktes.
Vor dem Anwenden prüfen
Vergleichen Sie das tatsächliche Verhalten mit dem erwarteten Ergebnis. Klären Sie fehlgeschlagene Prüfungen vor weiteren Änderungen.
Modelle
Richten Sie einen OpenAI-kompatiblen oder Anthropic-Endpunkt mit Basis-URL und gegebenenfalls API-Schlüssel ein. Testen Sie die Verbindung. Ein lokaler Modellserver muss laufen; entfernte Werkzeuge können Daten separat übertragen.
from fractions import Fraction
def barycentric(vertices, point):
vertices, point = tuple(tuple(v) for v in vertices), tuple(point)
if len(vertices) != 3 or any(len(v) != 2 for v in vertices) or len(point) != 2:
raise ValueError("triangle.shape")
if any(type(c) is not int or abs(c) > 10000 for v in vertices + (point,) for c in v):
raise ValueError("coordinate.range")
(x0, y0), (x1, y1), (x2, y2) = vertices
x, y = point
den = (y1-y2)*(x0-x2) + (x2-x1)*(y0-y2)
if den == 0:
raise ValueError("triangle.degenerate")
a = Fraction((y1-y2)*(x-x2) + (x2-x1)*(y-y2), den)
b = Fraction((y2-y0)*(x-x2) + (x0-x2)*(y-y2), den)
return a, b, 1-a-b
KI-Arbeitsumgebung für Code
Geometrische Anforderungen in überprüfbare Quellcodeänderungen umsetzen
BarySlate ist eine Programmierumgebung für Windows, in der Sie geometriebezogenen Quellcode mit einem selbst angebundenen KI-Modell besprechen. Beginnen Sie mit dem Koordinatensystem und dem Ergebnis, das Ihre Anwendung benötigt. Eine präzise Beschreibung dieser Konventionen hält das Gespräch nützlich, wenn ein optisch plausibles Ergebnis dennoch das falsche Vorzeichen, die falsche Reihenfolge oder Zahlendarstellung haben könnte.
Das Beispiel zu baryzentrischen Dreieckskoordinaten liefert eine konkrete Projektaufgabe: vorzeichenbehaftete Gewichte prüfen und ein entartetes Dreieck zurückweisen. Lassen Sie das Modell die Funktion gemeinsam mit dem Code untersuchen, der diese Gewichte verwendet. Erklären Sie vor einer möglichen Schnittstellenänderung, ob der Aufrufer exakte Brüche oder eine andere Darstellung benötigt.
Prüfen Sie den Vorschlag anhand von Eckpunkten sowie einem inneren und einem äußeren Punkt mit unabhängig ermittelten Erwartungen. Nehmen Sie einen entarteten Fall auf und verfolgen Sie dessen Fehlerbehandlung. Führen Sie diese Testfälle mit Ihren Projektwerkzeugen aus und untersuchen Sie auch das Verhalten des verbrauchenden Codes; eine geänderte Behandlung äußerer Punkte kann mehr als die Berechnung selbst beeinflussen.
Ein uneingeschränktes KI-Modell ist nur dann wählbar, wenn es über Ihren unterstützten OpenAI-kompatiblen oder Anthropic-Endpunkt verfügbar ist. Geben Sie bei Bedarf Zugangsdaten an und prüfen Sie Kontext- und Werkzeugunterstützung. Die Einschränkungen des gewählten Modells gelten weiterhin. BarySlate liefert dessen Änderungsvorschlägen einen konkreten Projektkontext, in dem Sie sie bewerten können.
Vor der Annahme eines Vorschlags für Geometriecode
Was sollte ich zu Punkten außerhalb des Dreiecks angeben?
Geben Sie an, ob vorzeichenbehaftete Gewichte erwartet werden und wie der Aufrufer sie verwendet. Nehmen Sie nicht an, dass ein äußerer Punkt ungültig ist, nur weil ein Gewicht negativ ist. Ergänzen Sie einen Testfall für einen äußeren Punkt mit dem gewünschten Ergebnis und dem Verhalten des verbrauchenden Codes.
Warum sollte die Anfrage exakte Brüche erwähnen?
Eine Änderung des Rückgabetyps kann Vergleiche, Serialisierung und nachgelagerte Berechnungen verändern. Wenn Ihr Projekt auf exakte Werte angewiesen ist, nennen Sie diese Anforderung ausdrücklich. Prüfen Sie jede vorgeschlagene Umwandlung in Gleitkommawerte gemeinsam mit den Aufrufern, die sie erhalten würden.
Welche Fälle helfen, einen Fehler in der Koordinatenreihenfolge einzugrenzen?
Beginnen Sie mit jedem Eckpunkt und seinen erwarteten Gewichten, danach mit einem inneren Punkt mit bekanntem Ergebnis. Halten Sie die Eckpunktreihenfolge im Testfall ausdrücklich fest. Diese Fälle können Reihenfolgeannahmen aufdecken, die ein einzelnes gerendertes Dreieck verbirgt.
Kann BarySlate bestätigen, dass meine gerenderte Geometrie korrekt ist?
Ermitteln Sie dies mit Ihrer Rendering-Umgebung und Ihren Projektprüfungen. Die Programmierumgebung unterstützt Codebesprechungen und Änderungsvorschläge. Vergleichen Sie numerische Testfälle mit dem sichtbaren Verhalten, statt eine Modellerklärung oder ein einzelnes Bild als vollständige Überprüfung anzusehen.