Área orientada de polígonos
Retorne o dobro da área orientada de 3–256 vértices inteiros com coordenadas de magnitude até 1000000.
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]))Revise antes de aplicar
Compare o comportamento real com o resultado esperado. Se uma verificação falhar, investigue a causa antes de fazer outras alterações.
Modelos
Configure um endpoint compatível com OpenAI ou Anthropic com a URL base e uma chave API, quando necessária. Teste a conexão. O servidor local precisa estar em execução; ferramentas remotas podem transmitir dados separadamente.
Projeto
Teste ordem inversa e colinearidade, trate cruzamentos algebricamente e rejeite coordenadas malformadas.
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]))Relacione as convenções de coordenadas ao código que as utiliza
ShoalMetric é um ambiente de programação com IA para Windows para discutir cálculos no contexto da aplicação que os consome. Selecione a pasta do projeto e descreva a convenção de coordenadas, a saída esperada e os casos que a aplicação deve rejeitar. Peça ao assistente conectado que examine a validação e os consumidores antes de sugerir mudanças. Isso estabelece um escopo concreto de software para a tarefa geométrica, em vez de deixar seu significado restrito a uma fórmula isolada.
Uma tarefa envolvendo polygon.py poderia perguntar por que inverter a ordem dos pontos muda o resultado de uma área com sinal. Traga um polígono de exemplo e indique se o código chamador precisa de orientação, magnitude ou outra representação. Revise a alteração proposta segundo esse requisito, incluindo a ordem em que os vértices chegam. O resultado útil é um código cujo resultado tenha um significado acordado em todos os pontos da aplicação que o utilizam.
Após a inspeção, execute as verificações do projeto com uma forma simples, a ordem invertida e os casos degenerados contemplados pelo contrato. Compare o cálculo e o comportamento posterior e leve as discrepâncias de volta à conversa. ShoalMetric permite conexões a modelos compatíveis com OpenAI ou da Anthropic, com credenciais conforme necessário. Você pode escolher um modelo sem restrições quando disponível, sujeito às regras do provedor; ferramentas, capacidade de contexto e restrições de resposta ainda dependem do modelo e do servidor configurados. Cabe a você verificar o comportamento geométrico esperado.
Premissas geométricas a definir no ambiente
Um resultado de área negativo deve ser tratado como erro?
Isso depende de o código chamador usar uma grandeza com sinal para preservar a orientação. Especifique o significado necessário antes de mudar o sinal ou obter a magnitude; depois, verifique o efeito no código que consome o resultado.
Por que incluir a ordem invertida dos vértices em um teste?
Isso revela se a orientação faz parte do contrato e se a implementação a preserva. Use uma forma com resultado conhecido de maneira independente; depois, examine tanto a saída numérica quanto o comportamento do código chamador para a sequência invertida.
O exemplo valida todos os polígonos possíveis?
Não deduza isso de um cálculo de área. Se a aplicação precisa verificar interseções ou outras propriedades geométricas, indique esses requisitos separadamente e examine a implementação relevante, em vez de supor que o cálculo os comprova.
Como devo escolher os limites das coordenadas?
Use as restrições da aplicação e da representação numérica. Informe esses limites ao assistente, examine como são impostos e teste valores próximos a eles. Limites no código de exemplo não comprovam precisão ou desempenho para outra escala de dados.
ShoalMetric · Atualizado 2026-10-25