Por que eu devo ler este artigo:Este artigo apresenta uma introdução aos conceitos necessários para movimentar formas geométricas utilizando as ferramentas da API Java3D, explicando a estrutura que deve ser criada para montar a cena e os objetos de transformação necessários para obter a movimentação dos gráficos tridimensionais.

Junto com as explicações, alguns exemplos demonstrando os conceitos abordados serão analisados para facilitar a sua compreensão.

A biblioteca Java3D possibilita escrever aplicações com gráficos tridimensionais, fornecendo as ferramentas para criar, manipular e visualizar geometrias 3D.

Nesta biblioteca, a organização dos dados que representam os elementos que compõem a imagem é baseada em grafos. Isto quer dizer que os elementos da cena tridimensional são organizados em uma estrutura hierárquica de dados, que recebe o nome de grafo de cena.

A visão geral de como criar e manipular as geometrias em um grafo de cena é apresentada no artigo “Primeiros passos com a Java3D”, publicado na easy Java Magazine 36. Como apresentado neste primeiro artigo, as informações que representam um objeto tridimensional são chamadas de modelo geométrico, geometria ou simplesmente modelo.

O grafo de cena é utilizado para organizar os elementos que formam o que se chama de universo. O universo para uma aplicação gráfica, ou mais especificamente para uma cena tridimensional, deve conter todas as informações necessárias para a geração da(s) imagem(ens) desejada(s).

Em um grafo de cena estão presentes, além dos dados que representam as geometrias dos elementos que devem aparecer na imagem, elementos que representam ações, ou movimentos, que alteram a forma ou a posição das geometrias definidas. Estas alterações podem representar um simples deslocamento utilizado para posicionar corretamente o modelo, ou também rotações e transformações que alterem a forma do modelo geométrico no qual está sendo aplicada.

Neste artigo serão discutidas as transformações de deslocamento e rotação juntamente com esquemas que permitem criar movimentos, além de demonstrar como permitir ao usuário controlar algumas destas transformações, fazendo com que ele controle o ponto de visão ou a posição da forma no espaço virtual criado pela aplicação.

No restante do artigo os desenhos tridimensionais serão chamados de formas, geometrias ou ainda modelos, já o termo objeto será utilizado apenas para denotar instâncias de classes Java, definidas pelas APIs abordadas ou nos exemplos.

Posicionando as formas

Para posicionar uma forma geométrica no espaço é necessário indicar o ponto que esta ocupa em relação à origem do sistema de coordenadas, ou seja, define-se qual é a distância da forma ao ponto (0, 0, 0). Para realizar isso na Java3D, o objeto que representa a forma que se deseja posicionar precisa estar associado a um objeto de transformação que implementa uma translação.

Isto é realizado pela classe TransformGoup, na qual deve ser especificada a transformação a ser realizada e as geometrias nas quais esta será aplicada. A translação é especificada chamando o método setTranslation() da classe Transform3D, que recebe como parâmetro um objeto do tipo Vector3f que representa o vetor de translação a que a forma será submetida, ou seja, o quanto será deslocada em cada um dos eixos ordenados (x, y, z).

No exemplo apresentado na Listagem 1, uma série de formas são posicionadas em cada um dos eixos, sendo colocadas esferas no eixo x, cones no eixo y e cilindros no eixo z. As formas criadas têm tamanho de cinco centímetros, o que pode ser observado nas chamadas de seus respectivos construtores, que são os primeiros comandos em cada um dos três laços presentes no código.

Cada uma destas formas é posicionada a cada 10 centímetros nos eixos ordenados, o que está especificado nos construtores dos objeto ...

Quer ler esse conteúdo completo? Tenha acesso completo