Estou tentando implementar o teorema do eixo separador em C #. Eu tenho uma função que pode calcular o vetor de conversão mínimo entre dois polígonos. No entanto, não consigo criar uma função que calcule o vetor mínimo de conversão entre um polígono e vários outros polígonos. Sinceramente, estou trabalhando nisso há meses e não estou mais perto de uma solução e não consegui encontrar uma solução online. Sempre há alguns casos extremos que não retornam o resultado correto, levando a erros de alta prioridade no meu jogo.
Aqui estão casos comuns de borda que não funcionam corretamente:
Existe uma solução conhecida para esse problema? Tudo o que posso encontrar são pessoas dizendo "apenas execute o SAT em cada polígono", mas isso raramente produz o vetor mínimo de tradução.
Qualquer ajuda seria muito apreciada.