Algoritmo de alto nível:
- Começando com uma triangulação que permanece consistente em todas as imagens
- No entanto, certifique-se de que os vértices dos triângulos são ajustados para se adequar às características únicas de cada face
- O efeito morphing é criado pela transição da triangulação de uma imagem para a da próxima, enquanto simultaneamente desvanecimento das imagens de cada triângulo
Triangulação Delaunay:
- Ele utiliza uma biblioteca profissional para triangulação incremental Delaunay, que traduzi para Java a partir de uma implementação C++ que encontrei online com base em um algoritmo desenvolvido por pesquisadores no campo.
- Recurso adicionado: opção para desfazer a última inserção de vértice, permitindo que os usuários tenham um vértice provisório na mosca até que formalizem na triangulação (demo).
- Recurso de bônus adicionado: defina o domínio inicial como um retângulo em vez de um triângulo, o que não é trivial, especialmente considerando meu histórico!
- Função adicionada que permite atravessar os triângulos em uma triangulação usando o padrão de design do visitante.
Funções que merecem ser notadas:
- Álgebra básica: Transformação das coordenadas de um ponto dentro de um triângulo para as coordenadas dentro de outro triângulo, conhecendo os vértices de ambos os triângulos.
- Matemática básica: Use o padrão de design do visitante para atravessar os pixels em um triângulo.
- Opção para criar a sequência de vídeo usando multi-threading.
Com o lançamento da versão v1.1, a criação da triangulação tornou-se muito mais fácil para os usuários, integrando uma biblioteca de detecção de rosto alimentada por IA. Os usuários podem acessar a biblioteca através de uma API REST para um servidor em nuvem.
Com esta biblioteca, os usuários podem começar a triangular os 68 vértices detectados para cada face e continuar adicionando vértices, se necessário.