Mayavi e Python para visualização de curvas e superfícies

Leandro Cruvinel
5 min readMar 11, 2020

--

Mayavi é uma biblioteca de visualização de gráficos tridimensionais escrita em Python. É uma ótima ferramenta didática em aulas de geometria analítica e cálculo.

Nesse tutorial aprenderemos como preparar sua máquina windows para usar Mayavi e, também, como visualizar curvas, superfícies, pontos e vetores com essa ferramenta.

Preparando o ambiente

Primeiro, devemos instalar o software Anaconda Python 3.7 acessando esse site.

A instalação é simples, bastando executar o instalador e apertar next várias vezes. Uma vez instalado, abriremos o Anaconda Prompt. Para encontrar essa ferramenta, basta utilizar a busca do seu Windows.

Utilizando o prompt, vamos navegar até o C:\, criar uma pasta chamada projetoMayavi e, em seguida, entrar nessa nova pasta. Para isso execute os comando da figura abaixo:

Nosso próximo passo é criar um ambiente virtual de nome mayaviVenv.

Caso necessite, digite y:

Uma vez criado, devemos acessar o ambiente:

Para os próximos passos precisaremos de uma conexão com a internet.

Dentro do ambiente, vamos instalar a biblioteca numpy. Umas das bibliotecas necessárias para o funcionamento do Mayavi.

Em seguida, instalaremos o Jupyter Notebook, uma interface de programação em Python muito didática e intuitiva (isso pode levar um tempinho):

Agora, podemos instalar o Mayavi:

Seguindo as instruções oficiais da página da biblioteca, precisamos executar mais 3 passos:

Existem vários exemplos legais na galeria do site oficial do Mayavi. Podemos acessar a galeria clicando aqui.

Para começar a programar, basta abrir o Jupyter Notebook. Para isso execute o seguinte comando:

É importante não fechar o Anaconda Prompt enquanto estiver trabalhando no Jupyter Notebook.

Clique em New e, em seguida, clique em Python 3. Abrirá a seguinte interface:

Podemos renomear o arquivo para ficar mais fácil localizá-lo futuramente.

Coloque, por exemplo, o nome de introducao_mayavi e, depois, clique em Rename.

Ao digitar um script na tela e clicar em run, o script é executado e o resultado é apresentado no próprio notebook. Em alguns casos, uma janela externa se abrirá para mostrar o resultado.

Para testar se tudo está ok, executaremos um script que cria um cilindro:

O resultado deve ser o seguinte:

Ok, isso é muito legal, mais legal ainda é arrastar o mouse sobre a figura para vê-la de diferentes ângulos.

Nas próximas seções exploraremos um pouco mais essa ferramenta!

Os códigos aqui apresentados podem ser copiados deste link.

Superfícies através de equações paramétricas

Explicaremos algumas linhas do código que gerou o cilindro:

  • As linhas 1 e 2 importam as bibliotecas necessárias para fazer a superfície, bem como atribui apelidos a estas (mlab e np).
  • A linha 4 usa a mlab para iniciar uma figura com fundo branco definido pelo vetor (R, G, B) = (1, 1, 1). Quer um fundo verde? Experimente trocar esse vetor por (0, 1, 0).
  • Na linha 6, informamos quais os intervalos dos parâmetros u e v. Por exemplo, v varia de 0 a 2 de 0.2 em 0.2.
  • Na linha 8 passamos as equações paramétricas do cilindro. Essas equações, geralmente, são aprendidas em cursos superiores de geometria analítica.
  • Na linha 9 criamos o cilindro e na linha 10, mostramos ele na tela.

Para dar mais um exemplo, trocaremos as paramétricas do cilindro pelas paramétricas do hiperboloide de uma folha. Devemos alterar os intervalos dos parâmetros u e v:

Como resultado obtemos:

Observe que mudamos a cor passando colormap. Mais opções de cores podem ser encontradas aqui.

Curvas

Para curvas podemos, igualmente, usar suas equações paramétricas:

Observe que as mudanças no script acima são:

  • Uso de apenas um parâmetro t, ao invés de dois (u e v)
  • Uso da função np.arange para definir o intervalo de t de 0 a 4 π
  • Uso da função plot3d no lugar da função mesh
  • Passamos o raio do tubo na linha 12
  • Passamos a variação da cor em relação a t

O resultado é uma curva chamada helicoide:

Outra curva interessante, apresentada na documentação da biblioteca Mayavi nesse site é a seguinte:

O código para fazer tal é o seguinte:

Superfícies através de gráficos de funções

Uma das superfícies mais famosas é a sela de cavalo dada pela equação em coordenadas cartesiana abaixo:

Para definir essa função em Python:

Agora, usando o Mayavi, podemos passar a função para construção da sela:

Obtemos então:

Considerações finais

Considerando a utilização da biblioteca Mayavi do Python, vimos:

  • Preparação do ambiente
  • Superfícies através de equações paramétricas
  • Curvas através de equações paramétricas
  • Superfícies através de gráficos de função

Espero que tenham gostado! Até a próxima!

--

--

Leandro Cruvinel
Leandro Cruvinel

Written by Leandro Cruvinel

Math Professor | Data Scientist | Web developer

No responses yet