não conseguimos ficar sem consultá-la,
graças aquela coisa (para muitos), podemos criar bons
exemplos de programas sem muitas dores de cabeça.
Foi de lá que extrai estas informações e passo agora
para os interessados em javaFx um pouco sobre
a classe Shape3D.
A classe Shape3D fornece definições de propriedades comuns
para objetos que representam algum modelo de forma
geométrica 3D. Essas propriedades incluem:
O material a ser aplicado ao interior preenchível da forma
ou do contorno da forma (consulte setMaterial (javafx.scene.paint.Material)).
As propriedades do modelo de desenho que define como
renderizar sua geometria (consulte setDrawMode (javafx.scene.shape.DrawMode)).
As propriedades de remoção de faces que definem
qual face a selecionar (veja setCullFace (javafx.scene.shape.CullFace)).
As formas 3D pré-definidas são fornecidas para facilitar
a criação rápida de objetos 3D prontos para o uso.
Essas formas incluem caixas, cilindros e esferas.
Neste exemplo estamos mostrando como criar
alguns cilindros em 3D e exibir no cenário do javaFX.
Veja abaixo uma imagem do programa em execução:
Veja abaixo o código do programa:
import java.io.FileNotFoundException;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.paint.PhongMaterial;
import javafx.stage.Stage;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.scene.transform.Rotate;
import javafx.scene.shape.Cylinder;
public class PROJETO extends Application {
// Comprimento do
cilindro
private static final double height = 200;
// Radius do cilindro
private static final double radius = 30;
Canvas canvas = new Canvas ( 600, 350 );
GraphicsContext ctx = canvas.getGraphicsContext2D ( );
Pane root = new Pane ( );
Scene scene = new Scene ( root );
//
/////////////////////////////////////////////////////////////////////////
public void Informe ( ) {
ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 13 ) );
ctx.setFill ( Color.RED );
ctx.fillText ( "Por: ", 200, 280 );
ctx.setFill ( Color.BLUE );
ctx.fillText ( "Samuel
Lima", 240, 280 );
ctx.setFill ( Color.BLACK );
ctx.fillText ( "sa_sp10@hotmail.com", 200, 295 );
ctx.setFill ( Color.RED );
ctx.fillText ( " MUITO
OBRIGADO", 245, 320 );
}
//
/////////////////////////////////////////////////////////////////////////
public void start ( Stage stage ) throws FileNotFoundException {
stage.setTitle ( "JAVAFX -
DESENHANDO CILINDROS EM 3D" );
// Usando fonte em italic
ctx.setFont ( Font.font ( "Helvetica", FontWeight.BOLD,
FontPosture.ITALIC, 15 ) );
ctx.setFill ( Color.RED );
ctx.fillText ( "JAVAFX -
DESENHANDO CILINDROS EM 3D", 150, 40 );
// Criando uma moldura retangular em canvas
ctx.setStroke ( Color.BLUE );
ctx.setLineWidth ( 10.0 );
ctx.strokeRoundRect ( 10, 10, 580, 330, 10, 10 );
ctx.setFont ( Font.font ( "Helvetica", FontWeight.BOLD,
FontPosture.ITALIC, 12 ) );
Cylinder cl_1 = new Cylinder ( radius, height );
Cylinder cl_2 = new Cylinder ( radius, height );
Cylinder cl_3 = new Cylinder ( radius, height );
Cylinder cl_4 = new Cylinder ( radius, height );
////////////////////////////////////////////////////////////////////////
// Criando PhongMaterial
PhongMaterial material_1 = new PhongMaterial ( );
PhongMaterial material_2 = new PhongMaterial ( );
PhongMaterial material_3 = new PhongMaterial ( );
PhongMaterial material_4 = new PhongMaterial ( );
////////////////////////////////////////////////////////////////////////
material_1.setDiffuseColor ( Color.RED );
material_1.setSpecularColor ( Color.BLACK );
cl_1.getTransforms ( ).add ( new Rotate ( -70, Rotate.X_AXIS ) );
cl_1.getTransforms ( ).add ( new Rotate ( 20, Rotate.Z_AXIS ) );
cl_1.getTransforms ( ).add ( new Rotate ( 30, Rotate.Y_AXIS ) );
// Colunas
cl_1.setLayoutX ( 150 );
// Linhas
cl_1.setLayoutY ( 180 );
cl_1.setMaterial ( material_1 );
////////////////////////////////////////////////////////////////////////
material_2.setDiffuseColor ( Color.BLUE );
material_2.setSpecularColor ( Color.BLACK );
cl_2.getTransforms ( ).add ( new Rotate ( -70, Rotate.X_AXIS ) );
cl_2.getTransforms ( ).add ( new Rotate ( 20, Rotate.Z_AXIS ) );
cl_2.getTransforms ( ).add ( new Rotate ( 30, Rotate.Y_AXIS ) );
// Colunas
cl_2.setLayoutX ( 250 );
// Linhas
cl_2.setLayoutY ( 180 );
cl_2.setMaterial ( material_2 );
////////////////////////////////////////////////////////////////////////
material_3.setDiffuseColor ( Color.GREEN );
material_3.setSpecularColor ( Color.BLACK );
cl_3.getTransforms ( ).add ( new Rotate ( -70, Rotate.X_AXIS ) );
cl_3.getTransforms ( ).add ( new Rotate ( 20, Rotate.Z_AXIS ) );
cl_3.getTransforms ( ).add ( new Rotate ( 30, Rotate.Y_AXIS ) );
// Colunas
cl_3.setLayoutX ( 350 );
// Linhas
cl_3.setLayoutY ( 180 );
cl_3.setMaterial ( material_3 );
////////////////////////////////////////////////////////////////////////
material_4.setDiffuseColor ( Color.YELLOW );
material_4.setSpecularColor ( Color.BLACK );
cl_4.getTransforms ( ).add ( new Rotate ( -70, Rotate.X_AXIS ) );
cl_4.getTransforms ( ).add ( new Rotate ( 20, Rotate.Z_AXIS ) );
cl_4.getTransforms ( ).add ( new Rotate ( 30, Rotate.Y_AXIS ) );
// Colunas
cl_4.setLayoutX ( 450 );
// Linhas
cl_4.setLayoutY ( 180 );
cl_4.setMaterial ( material_4 );
////////////////////////////////////////////////////////////////////////
Informe ( );
root.getChildren ( ).addAll ( canvas, cl_1, cl_2, cl_3, cl_4 );
stage.setScene ( scene );
stage.show ( );
}
//
/////////////////////////////////////////////////////////////////////////
public static void main ( String [ ] args ) {
Application.launch ( args );
}
}
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.