Javafx exemplo de programação: caixa 3d

Video: Java FX animation

JavaFX tem suporte embutido para modelagem 3D realista. Na verdade, o grafo de cena JavaFX é tridimensional na natureza. A maioria dos programas JavaFX trabalhar em apenas duas dimensões, especificando apenas X e Y coordenadas. Mas tudo que você tem que fazer para entrar na terceira dimensão é especificar coordenadas z para colocar os nós de seu grafo de cena no espaço tridimensional.

JavaFX inclui um rico conjunto de classes que se dedicam a criar e visualizar objetos 3D em mundos 3D. Você pode criar formas tridimensionais, como cubos e cilindros. Você pode mover a câmera virtual em torno dentro do espaço 3D para olhar para os seus objetos 3D a partir de diferentes ângulos e perspectivas diferentes.

E você ainda pode adicionar fontes de iluminação para controlar cuidadosamente a aparência final de seus mundos virtuais. Em suma, o JavaFX é capaz de produzir cenas 3D surpreendentes.

Video: 3-D Made Easy with JavaFX

Adicione uma caixa 3D para o seu mundo Java

Nesta etapa, adicionar um objeto para o mundo 3D: Neste caso, uma caixa, representada pela Caixa classe. Aqui está o código:

caixa = new Box (100, 100, 100) -box.setMaterial (Bluestuff) -box.setTranslateX (150) -box.setTranslateY (-100) -box.setTranslateZ (-100) -root.getChildren (). add (caixa)-

o Caixa construtor aceita três argumentos que representam a largura, altura e profundidade da caixa. Neste exemplo, todos os três estão definidas para 100. Assim, a caixa vai ser desenhada como um cubo com cada lado medindo 100 unidades.

A caixa é dado o mesmo material que o do cilindro, em seguida, é traduzido em todos os três eixos de modo que você pode ter uma vista em perspectiva da caixa. A figura mostra como a caixa aparece quando prestados. Como você pode ver, os rostos esquerdo e inferior da caixa são visíveis porque você traduziu a posição da caixa para cima e para a direita para que a câmara possa ganhar alguma perspectiva.

Uma caixa 3D criado em JavaFX.

Gire a caixa 3D

Nesta etapa, gire a caixa para criar uma visão ainda mais interessante perspectiva. Há duas maneiras para girar um objeto 3D. O mais simples é chamar o objeto de setRotate método e fornecer um ângulo de rotação:

box.setRotate (25) -


Por defeito, esta vai rodar o objecto no seu eixo z. Se isso é difícil de visualizar, imaginar skewering o objeto com uma vara longa que é paralela ao eixo z. Em seguida, girar o objeto no espeto.

Video: JavaOne 2010: JavaFX 2.0 demo during Thomas Kurian keynote

Se você deseja girar o objeto ao longo de um eixo diferente, primeiro ligue para o setRotationAxis. Por exemplo, para girar o objecto sobre o seu eixo-x, utilizar esta sequência:

box.setRotationAxis (Rotate.X_AXIS) -box.setRotate (25) -

Imagine correr o espeto através da caixa com o espeto paralelo ao eixo x e depois girar a caixa de 25 graus.

Video: Eclipse JavaFx Configuration

O único problema com o uso do setRotate método para girar um objeto 3D é que ele só funciona em um eixo de cada vez. Por exemplo, suponha que você queira rodar a caixa de 25 graus em ambos o Z e o eixo-x. O código a seguir não alcançar este objetivo:

box.setRotationAxis (Rotate.X_AXIS) -box.setRotate (25) -box.setRotationAxis (Rotate.Z_AXIS) -box.setRotate (25) -

Quando o setRotate método é chamado o segundo tempo para girar a caixa no eixo z, a rotação do eixo x é reposto.

Para girar em mais de um eixo, você deve usar o Rodar classe em vez. Você cria um separado Rodar instância para cada eixo que deseja girar o objeto sobre e em seguida, adicione todo o Rodar casos em relação ao objecto do transforma coleção através da getTransforms (). addAll método, assim:

Rodar rxBox = novo Rodar (0, 0, 0, 0, Rotate.X_AXIS) -Rotate RYBOX = novo Rodar (0, 0, 0, 0, Rotate.Y_AXIS) -Rotate rzBox = novo Rodar (0, 0, 0, 0, Rotate.Z_AXIS) -rxBox.setAngle (30) -ryBox.setAngle (50) -rzBox.setAngle (30) -box.getTransforms () addAll (rxBox, RYBOX, rzBox). -

o Rodar construtor aceita quatro parâmetros. Os três primeiros são o x, y, e z coordenadas do ponto no interior do objecto, através do qual o eixo de rotação vai passar. Normalmente, você especificar zeros para estes parâmetros para girar o objeto em torno de seu ponto central. O quarto parâmetro especifica o eixo de rotação.

Esta figura mostra como a caixa aparece depois de ter sido rodado.

Uma caixa 3d rodado feita em JavaFX
A caixa depois de ter sido rodado.

Publicações relacionadas