Dados os valores em uma malha, qual algoritmo posso usar para construir níveis eficientemente definidos dos contornos?


9

Eu tenho uma malha, faces , arestas e vértices , e tenho uma lista de contornos predefinidos de conjunto de níveis.FEV

Que algoritmo posso usar para construir contornos da maneira mais eficiente?

insira a descrição da imagem aqui

Uma plotagem do contorno é mostrada acima. Linhas com a mesma cor têm o mesmo valor .z


11
Por que o voto negativo?
Graviton

11
não tenho certeza, parece uma pergunta relevante para mim. Downvoter? Uma questão é que as isolinhas não parecem particularmente bem definidas para dados de malha. Você poderia dar um exemplo gráfico do problema que está tentando resolver?
Aron Ahmadia

Respostas:


4

Isso pode ser feito por um loop sobre cada elemento e, em seguida, para cada elemento, um loop pelas bordas. Em seguida, para cada aresta, determine a coordenada de um determinado contorno se ele cruzar a aresta, ou seja, verifique se o contorno assume um valor no intervalo medido pelos valores dos vértices. Se o contorno cruzar duas arestas, desenhe uma linha entre as coordenadas entre os pontos de cruzamento detectados nas arestas.

Fazer isso para todos os elementos criará os contornos. Também é uma opção para refinar uma malha mais fina por meio de interpolação em cada triângulo e, em seguida, usar triangulações delaunay da malha refinada e aplicar a rotina conforme descrito acima para obter uma resolução suficientemente fina.


O tempo de execução para isso é , onde é o número rosto e é o número de contorno, há de qualquer maneira para melhorar em tempo de execução deste algoritmo? O(Fn)Fn
Graviton

@Graviton: Eu doe não acho que você pode esperar para ser muito melhor do que escala linear com o tamanho do problema ...
Allan P. Engsig-Karup
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.