Javafx exemplo de programação: caixa 3d
Video: Java FX animation
Conteúdo
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.
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.