Curvas Repulsivas – Transações ACM em Gráficos
As curvas desempenham um papel fundamental em gráficos de computador, simulação física e visualização matemática, mas a maioria das ferramentas para o projeto de curvas não faz nada para evitar cruzamentos ou auto-interseções. Este artigo desenvolve algoritmos eficientes para (auto-)repulsão de curvas planas e espaciais que se adaptam bem a problemas de projeto computacional. Nosso ponto de partida é a chamada energia do ponto tangente , que fornece uma barreira infinita à auto-interseção. Em contraste com as estratégias de detecção de colisões locais usadas, por exemplo, simulação física, essa energia considera as interações entre todos os pares de pontos e, portanto, é útil para a otimização global da forma: mínimos locais tendem a ser esteticamente agradáveis, fisicamente válidos e bem distribuídos no espaço. Uma reformulação do gradiente descendente, com base em um produto interno de Sobolev-Slobodeckij, nos permite progredir rapidamente em direção a mínimos locais – independentemente da resolução da curva. Também desenvolvemos um esquema multigrade hierárquico que reduz significativamente o custo por etapa de otimização. A energia é facilmente integrada com uma variedade de restrições e penalidades ( por exemplo ,, inextensibilidade ou prevenção de obstáculos), que usamos para aplicações que incluem empacotamento de curvas, desembaraçamento de nós, incorporação de gráficos, interpolação de spline sem cruzamento, visualização de fluxo e planejamento de caminho robótico.
Este arquivo contém dois conjuntos de dados: Knot128 e Trefoil100 . Ambos os conjuntos de dados são “testes de estresse” para algoritmos de desembaraçamento de nós, ou seja, configurações altamente emaranhadas que podem ser difíceis de suavizar em uma incorporação de nós canônica. Knot128 é composto por nós de 128 classes de isótopos diferentes; para cada classe, fornecemos uma incorporação emaranhada e uma incorporação canônica (para referência). O Trefoil100 contém 100 encaixes emaranhados do nó do trevo . Até o momento, nenhum algoritmo – incluindo o nosso – consegue desembaraçar 100% desses nós (consulte o artigo/suplemento para estatísticas), embora cheguemos bem perto!
|
ZIP, 9,3 MB
|
repulsive-curves —Implementação C++, com visualização interativa via Polyscope . Curvas e restrições podem ser especificadas por um simples “arquivo de cena”, que é resolvido para produzir uma sequência de curvas otimizadas. As cenas suportam uma ampla variedade de restrições e objetivos, conforme descrito aqui .
Suplementar
Material Suplementar — Realizamos uma extensa comparação com 19 métodos alternativos de pré-condicionamento e otimização, descobrindo que, em geral, o esquema de Sobolev fracionado funciona significativamente melhor do que os esquemas de otimização de última geração para energias geométricas. Este documento também detalha como geramos nosso conjunto de dados de nós .
Este arquivo contém malhas (em várias resoluções) do unknot do artigo “Möbius Energy of Knots and Unknots” de Freedman, He e Wang, que é usado como referência de desempenho em nosso artigo.
|
ZIP, 1,8 MB
|
Figuras