em javaFx, utilizamos a classe Sphere.
A classe Sphere, define uma esfera
tridimensional com o tamanho especificado
pelo programador, que é o nosso caso,
ou pelo usuário quando um programa mais
avançado permite a um usuário criar
seus próprios desenhos em 3D.
Primitivamente, uma esfera é de
geometria 3D criada com um determinado raio.
Aqui está este excelente exemplo
de como desenhar esferas em 3D através
da fenomenal biblioteca 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.shape.Sphere;
public class PROJETO extends Application {
Canvas canvas = new Canvas ( 600, 350 );
GraphicsContext ctx = canvas.getGraphicsContext2D
( );
Pane root = new Pane ( );
Scene scene = new Scene ( root );
final Sphere esfera_azul = new Sphere ( 40 );
final Sphere esfera_vermelha = new Sphere ( 40 );
final Sphere esfera_amarela = new Sphere ( 40 );
final Sphere esfera_verde = new Sphere ( 40 );
final Sphere esfera_cyan = new Sphere ( 40 );
final Sphere esfera_rosa = new Sphere ( 40 );
final PhongMaterial Material_azul = new PhongMaterial ( );
final PhongMaterial Material_vermelho = new PhongMaterial ( );
final PhongMaterial Material_amarelo = new PhongMaterial ( );
final PhongMaterial Material_verde = new PhongMaterial ( );
final PhongMaterial Material_cyano = new PhongMaterial ( );
final PhongMaterial Material_rosa = new PhongMaterial ( );
//
/////////////////////////////////////////////////////////////////////////
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 UMA ESFERA EM 3D" );
// Usando fonte em italic
ctx.setFont ( Font.font ( "Helvetica", FontWeight.BOLD,
FontPosture.ITALIC, 15 ) );
ctx.setFill ( Color.RED );
ctx.fillText ( "JAVAFX -
DESENHANDO ALGUMAS ESFERAS EM 3D", 125, 35 );
// Criando uma moldura retangular em canvas
ctx.setStroke ( Color.GREEN );
ctx.setLineWidth ( 10.0 );
ctx.strokeRoundRect ( 10, 10, 580, 330, 10, 10 );
ctx.setFont ( Font.font ( "Helvetica", FontWeight.BOLD,
FontPosture.ITALIC, 12 ) );
//
/////////////////////////////////////////////////////////////////////
Material_vermelho .setDiffuseColor ( Color.RED );
Material_vermelho .setSpecularColor ( Color.LIGHTCORAL );
esfera_vermelha.setMaterial ( Material_vermelho );
// Colunas
esfera_vermelha.setLayoutX ( 220 );
// Linhas
esfera_vermelha.setLayoutY ( 220 );
//
/////////////////////////////////////////////////////////////////////
Material_azul .setDiffuseColor ( Color.BLUE );
Material_azul .setSpecularColor ( Color.LIGHTBLUE );
esfera_azul.setMaterial ( Material_azul );
// Colunas
esfera_azul.setLayoutX ( 300 );
// Linhas
esfera_azul.setLayoutY ( 220 );
//
/////////////////////////////////////////////////////////////////////
Material_amarelo.setDiffuseColor ( Color.YELLOW );
Material_amarelo .setSpecularColor ( Color.LIGHTYELLOW );
esfera_amarela.setMaterial ( Material_amarelo );
// Colunas
esfera_amarela.setLayoutX ( 380 );
// Linhas
esfera_amarela.setLayoutY ( 220 );
//
/////////////////////////////////////////////////////////////////////
Material_verde.setDiffuseColor ( Color.GREEN );
Material_verde.setSpecularColor ( Color.LIGHTGREEN );
esfera_verde.setMaterial ( Material_verde );
// Colunas
esfera_verde.setLayoutX ( 260 );
// Linhas
esfera_verde.setLayoutY ( 152 );
//
/////////////////////////////////////////////////////////////////////
Material_cyano.setDiffuseColor ( Color.CYAN );
Material_cyano.setSpecularColor ( Color.LIGHTCYAN );
esfera_cyan.setMaterial ( Material_cyano );
// Colunas
esfera_cyan.setLayoutX ( 340 );
// Linhas
esfera_cyan.setLayoutY ( 152 );
//
/////////////////////////////////////////////////////////////////////
Material_rosa.setDiffuseColor ( Color.PINK );
Material_rosa.setSpecularColor ( Color.LIGHTPINK );
esfera_rosa.setMaterial ( Material_rosa );
// Colunas
esfera_rosa.setLayoutX ( 300 );
// Linhas
esfera_rosa.setLayoutY ( 83 );
//
/////////////////////////////////////////////////////////////////////
Informe ( );
root.getChildren ( ).addAll ( canvas, esfera_azul, esfera_vermelha,
esfera_amarela, esfera_verde, esfera_cyan, esfera_rosa );
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.