Aire algébrique des polygones
Renvoyez le double de l’aire algébrique de 3 à 256 sommets entiers dont les coordonnées ne dépassent pas 1000000 en valeur absolue.
def signed_double_area(points):
if type(points) not in (list, tuple) or not 3 <= len(points) <= 256:
raise ValueError("polygon.count")
for p in points:
if type(p) not in (list, tuple) or len(p) != 2 or any(type(v) is not int or abs(v) > 10**6 for v in p):
raise ValueError("polygon.coordinate")
return sum(a[0]*b[1]-a[1]*b[0] for a,b in zip(points, points[1:]+points[:1]))Vérifiez avant d’appliquer
Comparez le comportement observé au résultat attendu. Si une vérification échoue, cherchez la cause avant de poursuivre les modifications.
Modèles
Configurez un endpoint compatible OpenAI ou Anthropic avec son URL de base et une clé API si nécessaire. Testez la connexion. Un serveur local doit fonctionner ; les outils distants peuvent transmettre des données séparément.
Projet
Testez l’ordre inversé et la colinéarité, traitez les croisements algébriquement et refusez les coordonnées mal formées.
def signed_double_area(points):
if type(points) not in (list, tuple) or not 3 <= len(points) <= 256:
raise ValueError("polygon.count")
for p in points:
if type(p) not in (list, tuple) or len(p) != 2 or any(type(v) is not int or abs(v) > 10**6 for v in p):
raise ValueError("polygon.coordinate")
return sum(a[0]*b[1]-a[1]*b[0] for a,b in zip(points, points[1:]+points[:1]))Reliez les conventions de coordonnées au code qui les utilise
ShoalMetric est un espace de programmation assistée par IA sous Windows permettant de discuter des calculs dans le contexte de l’application qui les exploite. Sélectionnez le dossier du projet et décrivez la convention de coordonnées, la sortie attendue et les cas que l’application doit rejeter. Demandez à l’assistant connecté d’examiner la validation et le code utilisateur des résultats avant de suggérer des modifications. Vous donnez ainsi à une tâche géométrique un périmètre logiciel concret, sans laisser son sens enfermé dans une formule isolée.
Une tâche concernant polygon.py pourrait chercher pourquoi inverser l’ordre des points modifie une aire signée. Fournissez un exemple de polygone et précisez si le code appelant a besoin de l’orientation, de la valeur absolue ou d’une autre représentation. Évaluez la modification proposée selon cette exigence, notamment l’ordre d’arrivée des sommets. Le résultat utile est un code dont la sortie a un sens convenu partout où l’application l’utilise.
Après examen, exécutez les vérifications du projet avec une forme simple, l’ordre inversé et les cas dégénérés couverts par votre contrat. Comparez le calcul et le comportement en aval, puis signalez les divergences dans la conversation. ShoalMetric prend en charge les connexions aux modèles compatibles OpenAI ou Anthropic, avec les identifiants requis. Vous pouvez choisir un modèle sans restrictions lorsqu’il est disponible, sous réserve des règles du fournisseur ; les outils, la capacité de contexte et les restrictions de réponse dépendent toujours du modèle et du serveur configurés. Il vous appartient de vérifier le comportement géométrique attendu.
Hypothèses géométriques à préciser dans l’espace de travail
Faut-il considérer une aire négative comme une erreur ?
Cela dépend de l’utilisation d’une quantité signée par le code appelant pour préserver l’orientation. Précisez le sens requis avant de changer le signe ou de prendre la valeur absolue, puis vérifiez l’effet sur le code qui exploite le résultat.
Pourquoi tester un ordre des sommets inversé ?
Cela révèle si l’orientation fait partie du contrat et si l’implémentation la préserve. Utilisez une forme dont le résultat est connu indépendamment, puis examinez la sortie numérique et le comportement du code appelant pour la séquence inversée.
L’exemple valide-t-il tous les polygones possibles ?
Ne le déduisez pas d’un calcul d’aire. Si votre application doit vérifier les intersections ou d’autres propriétés géométriques, précisez ces exigences séparément et examinez l’implémentation concernée plutôt que de supposer que le calcul les établit.
Comment choisir les limites des coordonnées ?
Utilisez les contraintes de votre application et de sa représentation numérique. Indiquez ces limites à l’assistant, examinez leur application et testez des valeurs proches. Les limites d’un exemple de code ne garantissent ni précision ni performances à une autre échelle de données.
ShoalMetric · Mis à jour 2026-10-25