terça-feira, 14 de agosto de 2018

JavaFx - desenhando um quadrado e rotacionando

A classe Rectangle define um retângulo
com o tamanho e a localização especificados 
pelo programador.
Por padrão, um retângulo tem cantos agudos, 

mas cantos arredondados podem ser obtidos facilmente
definindo as propriedades arcWidth e arcHeight

como valores positivos (> 0.0).
Neste exemplo estamos criando um quadrado
e rotacionando através da classe Rotate
e suas propriedades.


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



Veja abaixo o código do programa: 


import javafx.scene.shape.Rectangle;
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.scene.transform.Scale;
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.CYAN );
     Rectangle r = new Rectangle ( );
     // criando a transformação de rotação
     Rotate rotate = new Rotate ( );
     // Criando a transformação de escala
     Scale scale = new Scale ( );
     // /////////////////////////////////////////////////////////////////////////
     public void Informe ( ) {
         ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 13 ) );
         ctx.setFill ( Color.RED );
         ctx.fillText ( "Por: ", 250, 230 );
         ctx.setFill ( Color.BLUE );
         ctx.fillText ( "Samuel Lima", 280, 230 );
         ctx.setFill ( Color.BLACK );
         ctx.fillText ( "sa_sp10@hotmail.com", 250, 245 );
         ctx.setFill ( Color.RED );
         ctx.fillText ( " MUITO OBRIGADO", 250, 280 );
     }
     // /////////////////////////////////////////////////////////////////////////
     public void start ( Stage stage ) {
        // Usando fonte em italic
       ctx.setFont ( Font.font ( "Helvetica", FontWeight.BOLD,
                 FontPosture.ITALIC, 15 ) );
         stage.setTitle ( "JAVAFX - DESENHANDO UM QUADRADO" );
         // 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: black;" );
         ctx.setFill ( Color.RED );
         ctx.fillText ( "JAVAFX - DESENHANDO UM QUADRADO E ROTACIONANDO", 100, 50 );
         // Localização horizontal do quadrado
         r.setX ( 220 );
         // Localização vertical do quadrado
         r.setY ( 60 );
         // Larguara do quadrado
         r.setWidth ( 50 );
         // Altura do quadrado
         r.setHeight ( 50 );
         // Colorindo o quadrado
         r.setFill ( Color.BLUE );
         // Define a cor do entorno do quadrado
         r.setStroke ( Color.BLACK );
         // Definindo o ângulo para a rotação
         rotate.setAngle ( 45 );
         // Definir pontos de articulação para a rotação
         rotate.setPivotX ( 150 );
         rotate.setPivotY ( 225 );
         // Definindo as dimensões para a transformação
         scale.setX ( 1.5 );
         scale.setY ( 1.5 );
         // Configurando o ponto de pivô para a transformação
         scale.setPivotX ( 300 );
         scale.setPivotY ( 135 );
         // Adicionando todas as transformações ao quadrado
         r.getTransforms ( ).addAll ( rotate, scale );
         Informe ( );
         stage.setScene ( scene );
         root.getChildren ( ).addAll ( canvas, r );
         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.