quinta-feira, 16 de agosto de 2018

JavaFX - desenhando a estrela de Davi

Não temos muito o que dizer sobre
a classe pública Polygon, que se
extende da classe Shape, mas o essencial:
Ela cria um polígono definido por um
array de coordenadas, e estas coordenadas,
são aplicadas aos parâmetros do polígono,
tais como: largura, altura, ou desvio
em graus para que se chegue a um ideal.
Aqui estamos criando dois triângulos,
e colocando um ao oposto do outro
de tal maneira que os dois se transformem
numa única figura, "A Estrela de Davi".


Veja abaixo uma imagem do programa em execução:



Veja abaixo o código do programa: 


import java.io.FileNotFoundException;
import javafx.scene.shape.Polygon;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.scene.transform.Rotate;
import javafx.stage.Stage;
import javafx.scene.layout.Pane;

public class PROJETO extends Application {
     Pane root = new Pane ( );
     Canvas canvas = new Canvas ( 600, 310 );
     GraphicsContext ctx = canvas.getGraphicsContext2D ( );
     Scene scene = new Scene ( root, 600, 310, Color.WHITE );
     Polygon tr_1 = new Polygon ( );
     Polygon tr_2 = new Polygon ( );
     // criando a transformação de rotação
     Rotate rotate_1 = new Rotate ( );
     Rotate rotate_2 = new Rotate ( );
     // /////////////////////////////////////////////////////////////////////////
     public void Informe ( ) {
         ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 13 ) );
         ctx.setFill ( Color.RED );
         ctx.fillText ( "Por: ", 50, 230 );
         ctx.setFill ( Color.BLUE );
         ctx.fillText ( "Samuel Lima", 80, 230 );
         ctx.setFill ( Color.BLACK );
         ctx.fillText ( "sa_sp10@hotmail.com", 50, 245 );
         ctx.setFill ( Color.RED );
         ctx.fillText ( " MUITO OBRIGADO", 250, 280 );
     }
     // /////////////////////////////////////////////////////////////////////////
     public void start ( Stage stage ) throws FileNotFoundException {
         stage.setTitle ( "JAVAFX - DESENHANDO A ESTRELA DE DAVI" );
         ctx.setFont ( Font.font ( "Helvetica", FontWeight.BOLD,
                   FontPosture.ITALIC, 15 ) );
         // Criando moldura e dando efeitos
         root.setStyle ( "-fx-padding: 5;"
         + "-fx-border-style: solid inside;"
         + "-fx-border-width: 10;"
         + "-fx-border-insets: 5;"
         + "-fx-border-radius: 5;"
         + "-fx-border-color: red;" );
         tr_1.getPoints ( ).addAll (
                   new Double [ ] { 0.0, 0.0, 15.0, 170.0, 170.0, 90.0, } );
         tr_2.getPoints ( ).addAll (
                   new Double [ ] { 22.0, 0.0, 0.0, 170.0, 170.0, 90.0, } );
         ctx.setFill ( Color.RED );
         ctx.fillText ( "JAVAFX - DESENHANDO A ESTRELA DE DAVI", 145, 40 );
         tr_1.setFill ( Color.TRANSPARENT );
         // Localização - coluna
         tr_1.setLayoutX ( 94 );
         // Localização - linha
         tr_1.setLayoutY ( 52 );
         tr_1.setTranslateX ( 122 );
         tr_1.setTranslateY ( 60 );
         // Definindo o ângulo para a rotação
         rotate_1.setAngle ( -28 );
         tr_1.setStyle ( " -fx-stroke: blue;"
         + " -fx-stroke-width: 10;" );
         // Adicionando a rotação ao triângulo
         tr_1.getTransforms ( ).addAll ( rotate_1 );
         // /////////////////////////////////////////////////////////////////////
         // Localização - coluna
         tr_2.setLayoutX ( 166 );
         // Localização - linha
         tr_2.setLayoutY ( 34 );
         tr_2.setTranslateX ( 122 );
         tr_2.setTranslateY ( 20 );
         tr_2.setFill ( Color.TRANSPARENT );
         // Definindo o ângulo para a rotação
         rotate_2.setAngle ( 25 );
         tr_2.setStyle ( " -fx-stroke: blue;"
                   + " -fx-stroke-width: 10;" );
         // Adicionando a rotação ao triângulo
         tr_2.getTransforms ( ).addAll ( rotate_2 );
         // //////////////////////////////////////////////////////////////////////
         Informe ( );
         stage.setScene ( scene );
         root.getChildren ( ).addAll ( canvas, tr_1, tr_2 );
         stage.show ( );
     }
     // /////////////////////////////////////////////////////////////////////////
     public static void main ( String args ) {
         launch ( args );
     }
}

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.