JavaFX - Curva cuádruple de formas 2D

Matemáticamente, una curva cuadrática es aquella que se describe mediante una función cuadrática como - y = ax 2 + bx + c.

En gráficos por computadora se utilizan curvas de Bézier. Estas son curvas paramétricas que parecen razonablemente suaves en todas las escalas. Estas curvas de Bézier se dibujan basándose en puntos en un plano XY.

Una curva cuadrática es una curva paramétrica de Bezier en el plano XY que es una curva de grado 2. Se dibuja utilizando tres puntos: start point, end point y control point como se muestra en el siguiente diagrama

En JavaFX, una QuadCurve está representada por una clase llamada QuadCurve. Esta clase pertenece al paquetejavafx.scene.shape.

Al crear una instancia de esta clase, puede crear un nodo QuadCurve en JavaFX.

Esta clase tiene 6 propiedades del tipo de datos doble, a saber:

  • startX - La coordenada x del punto inicial de la curva.

  • startY - La coordenada y del punto inicial de la curva.

  • controlX - La coordenada x del punto de control de la curva.

  • controlY - La coordenada y del punto de control de la curva.

  • endX - La coordenada x del punto final de la curva.

  • endY - La coordenada y del punto final de la curva.

Para dibujar una QuadCurve, debe pasar valores a estas propiedades. Esto se puede hacer pasándolos al constructor de esta clase, en el mismo orden, en el momento de la instanciación, de la siguiente manera:

QuadCurve quadcurve = new QuadCurve(startX, startY, controlX, controlY, endX, endY);

O, utilizando sus respectivos métodos de establecimiento de la siguiente manera:

setStartX(value); 
setStartY(value); 
setControlX(value); 
setControlY(value); 
setEndX(value); 
setEndY(value);

Pasos para dibujar Quadcurve

Para dibujar una curva cuadrilátera de Bezier en JavaFX, siga los pasos que se indican a continuación.

Paso 1: crear una clase

Cree una clase Java y herede la Application clase del paquete javafx.application. Entonces puede implementar elstart() método de esta clase de la siguiente manera.

public class ClassName extends Application { 
   @Override     
   public void start(Stage primaryStage) throws Exception {     
   }    
}

Paso 2: Crear una QuadCurve

Puede crear una QuadCurve en JavaFX creando una instancia de la clase llamada QuadCurve que pertenece a un paquete javafx.scene.shape. A continuación, puede crear una instancia de esta clase como se muestra en el siguiente bloque de código.

//Creating an object of the class QuadCurve 
QuadCurve quadcurve = new QuadCurve();

Paso 3: Establecer propiedades en QuadCurve

Especifique las coordenadas x, y de los tres puntos: punto inicial, punto final y puntos de control, de la curva requerida, utilizando sus respectivos métodos de establecimiento como se muestra en el siguiente bloque de código.

//Adding properties to the Quad Curve 
quadCurve.setStartX(100.0); 
quadCurve.setStartY(220.0f); 
quadCurve.setEndX(500.0f); 
quadCurve.setEndY(220.0f);
quadCurve.setControlX(250.0f); 
quadCurve.setControlY(0.0f);

Paso 4: crear un objeto de grupo

En el start() método, cree un objeto de grupo instanciando la clase llamada Group, que pertenece al paquete javafx.scene.

Pase el objeto QuadCurve (nodo) creado en el paso anterior como parámetro al constructor de la clase Group, para agregarlo al grupo de la siguiente manera:

Group root = new Group(quadcurve);

Paso 5: creación de un objeto de escena

Cree una escena creando una instancia de la clase llamada Sceneque pertenece al paquete javafx.scene. A esta clase, pase el objeto Grupo(root) creado en el paso anterior.

Además del objeto raíz, también puede pasar dos parámetros dobles que representan la altura y el ancho de la pantalla junto con el objeto de la clase Group de la siguiente manera.

Scene scene = new Scene(group ,600, 300);

Paso 6: Establecer el título del escenario

Puede establecer el título del escenario utilizando el setTitle()método de la clase Stage. losprimaryStage es un objeto Stage que se pasa al método de inicio de la clase de escena, como parámetro.

Utilizando el primaryStage objeto, establezca el título de la escena como Sample Application como sigue.

primaryStage.setTitle("Sample Application");

Paso 7: agregar escena al escenario

Puede agregar un objeto de escena al escenario usando el método setScene()de la clase denominada Stage. Agregue el objeto Scene preparado en el anteriorsteps utilizando este método de la siguiente manera.

primaryStage.setScene(scene);

Paso 8: Visualización del contenido del escenario

Muestre el contenido de la escena usando el método llamado show() del Stage clase de la siguiente manera.

primaryStage.show();

Paso 9: lanzamiento de la aplicación

Inicie la aplicación JavaFX llamando al método estático launch() del Application class del método principal de la siguiente manera.

public static void main(String args[]){   
   launch(args);      
}

Ejemplo

A continuación se muestra un programa que genera una curva cuadrilátera usando JavaFX. Guarde este código en un archivo con el nombreQuadCurveExample.java.

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.stage.Stage; 
import javafx.scene.shape.QuadCurve;  

public class QuadCurveExample extends Application {  
   @Override 
   public void start(Stage stage) {        
      //Creating a QuadCurve 
      QuadCurve quadCurve = new QuadCurve();  
       
      //Adding properties to the Quad Curve 
      quadCurve.setStartX(100.0); 
      quadCurve.setStartY(220.0f); 
      quadCurve.setEndX(500.0f); 
      quadCurve.setEndY(220.0f); 
      quadCurve.setControlX(250.0f); 
      quadCurve.setControlY(0.0f);       
               
      //Creating a Group object  
      Group root = new Group(quadCurve);
      
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300);  
      
      //Setting title to the Stage 
      stage.setTitle("Drawing a Quad curve"); 
         
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage 
      stage.show(); 
   }    
   public static void main(String args[]){ 
      launch(args); 
   } 
}

Compile y ejecute el archivo java guardado desde el símbolo del sistema utilizando los siguientes comandos.

javac QuadCurveExample.java 
java QuadCurveExample

Al ejecutarse, el programa anterior genera una ventana JavaFX que muestra una curva cuadrilátera de Bezier como se muestra en la siguiente captura de pantalla.