Índice:
Vídeo: Programar la micro:BIT con MakeCode. Cómo usar y programar los LEDs 2024
Criar um mundo 3D virtual é mais fácil do que nunca no JavaFX. Neste exemplo, você aprende a adicionar uma esfera ao seu programa JavaFX, animá-lo e adicionar uma fonte de luz a ele.
Etapa 1: adicione uma esfera
Primeiro, adicione uma esfera, representada pela classe Sphere. O Construtor da Esfera aceita apenas um único parâmetro, que especifica o raio da esfera. Por exemplo, essas linhas criam uma esfera cujo raio é 100 e, em seguida, a traduz para deslocá-la para o ponto central do seu mundo virtual:
Esfera sphere = nova Esfera (100); esfera. setTranslateX (-180); esfera. setTranslateY (-100); esfera. setTranslateZ (100); raiz. GetChildren (). adicionar (esfera);
Ao invés de aplicar o mesmo material azul Phong à esfera, você pode fazer algo mais interessante: aplique um material Phong construído a partir de uma imagem de uma projeção cilíndrica da Terra usando este código:
Image earthImage = new Image ("arquivo: terra. jpg"); PhongMaterial earthPhong = novo PhongMaterial (); EarthPhong. setDiffuseMap (earthImage); esfera. setMaterial (earthPhong);
Esta figura mostra a esfera resultante.
Você pode envolver qualquer imagem em torno de uma esfera (ou qualquer outro objeto 3D, para esse assunto) usando esta técnica. Você também pode obter a imagem para este programa da Wikipédia. Basta procurar por Behrmann Projection e depois baixar o arquivo. (Use o Windows Paint para cortar as bordas da imagem um pouco porque a imagem disponível na Wikipedia tem uma pequena borda ao redor das bordas.)
Etapa 2: Animar os objetos
Whew! Seu mundo virtual 3D agora tem um objeto: uma esfera que se parece com a Terra. Você também pode adicionar outros objetos neste momento.
Nesta etapa, adicione uma animação a todos os objetos para fazê-los girar. Cada objeto obtém uma animação RotationTransition simples. Primeiro, a esfera:
RotateTransition rt4 = new RotateTransition (); rt4. setNode (esfera); rt4. setDuration (Duration. millis (9000)); rt4. setAxis (Rotate. Y_AXIS); rt4. setByAngle (360); rt4. setCycleCount (Animation. INDEFINITE); rt4. setInterpolator (Interpolador. LINEAR); rt4. Toque();
Depois que o método de jogo é chamado, a esfera começa a girar, fazendo uma volta completa ao redor do eixo z a cada três segundos.
A esfera gira em torno do eixo y, criando a impressão de que o mundo está girando. Para a esfera, a velocidade é definida para uma revolução a cada 10 segundos.
Passo três: Adicionar uma fonte de luz
O último passo para esta incursão no mundo da programação em 3D é adicionar uma fonte de luz.A fonte de luz mudará todo o aspecto da cena, como mostrado aqui.
Para adicionar a fonte de luz, use o seguinte código:
Seu mundo 3D com uma fonte de luz.luz PointLight = novo PointLight (Color. WHITE); luz. setTranslateX (-1000); luz. setTranslateY (100); luz. setTranslateZ (-1000); raiz. GetChildren (). adicionar (luz);
A classe PointLight define uma fonte de luz que se origina a partir de um ponto específico da cena e projeta luz da cor dada (neste caso, bom branco antigo). Para criar o efeito de iluminação, realce a luz, traduzindo suas coordenadas 1, 000 para a esquerda, 100 para baixo e 1 000 unidades em direção ao usuário. O resultado traz belas sombras nas costas dos objetos giratórios.