JavaFX - Curva quadrupla forme 2D

Matematicamente una curva quadratica è quella descritta da una funzione quadratica come - y = ax 2 + bx + c.

Nella computer grafica vengono utilizzate le curve di Bezier. Queste sono curve parametriche che appaiono ragionevolmente morbide a tutte le scale. Queste curve di Bézier vengono disegnate in base ai punti su un piano XY.

Una curva quadratica è una curva parametrica di Bézier nel piano XY che è una curva di grado 2. Viene disegnata utilizzando tre punti: start point, end point e control point come mostrato nel diagramma seguente

In JavaFX, una QuadCurve è rappresentata da una classe denominata QuadCurve. Questa classe appartiene al pacchettojavafx.scene.shape.

Istanziando questa classe, è possibile creare un nodo QuadCurve in JavaFX.

Questa classe ha 6 proprietà del doppio tipo di dati, ovvero:

  • startX - La coordinata x del punto iniziale della curva.

  • startY - La coordinata y del punto iniziale della curva.

  • controlX - La coordinata x del punto di controllo della curva.

  • controlY - La coordinata y del punto di controllo della curva.

  • endX - La coordinata x del punto finale della curva.

  • endY - La coordinata y del punto finale della curva.

Per disegnare una QuadCurve, è necessario passare valori a queste proprietà. Questo può essere fatto passandoli al costruttore di questa classe, nello stesso ordine, al momento dell'istanziazione, come segue:

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

Oppure, utilizzando i rispettivi metodi di settaggio come segue:

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

Passaggi per disegnare Quadcurve

Per disegnare una curva quadrilatera di Bézier in JavaFX, seguire i passaggi indicati di seguito.

Passaggio 1: creazione di una classe

Crea una classe Java ed eredita il file Application classe del pacchetto javafx.application. Quindi puoi implementare il filestart() metodo di questa classe come segue.

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

Passaggio 2: creazione di una QuadCurve

È possibile creare una QuadCurve in JavaFX istanziando la classe denominata QuadCurve che appartiene a un pacchetto javafx.scene.shape. È quindi possibile creare un'istanza di questa classe come mostrato nel seguente blocco di codice.

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

Passaggio 3: impostazione delle proprietà su QuadCurve

Specificare le coordinate x, y dei tre punti: punto iniziale, punto finale e punti di controllo, della curva richiesta, utilizzando i rispettivi metodi di impostazione come mostrato nel seguente blocco di codice.

//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);

Passaggio 4: creazione di un oggetto gruppo

Nel start() metodo, creare un oggetto gruppo istanziando la classe denominata Group, che appartiene al pacchetto javafx.scene.

Passa l'oggetto QuadCurve (nodo) creato nel passaggio precedente come parametro al costruttore della classe Group, per aggiungerlo al gruppo come segue:

Group root = new Group(quadcurve);

Passaggio 5: creazione di un oggetto scena

Crea una scena istanziando la classe denominata Sceneche appartiene al pacchetto javafx.scene. A questa classe passa l'oggetto Group(root) creato nel passaggio precedente.

Oltre all'oggetto radice, puoi anche passare due parametri doppi che rappresentano l'altezza e la larghezza dello schermo insieme all'oggetto della classe Group come segue.

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

Passaggio 6: impostazione del titolo dello stage

Puoi impostare il titolo dello stage utilizzando il setTitle()metodo della classe Stage. IlprimaryStage è un oggetto Stage che viene passato al metodo di avvio della classe scene, come parametro.

Usando il primaryStage oggetto, imposta il titolo della scena come Sample Application come segue.

primaryStage.setTitle("Sample Application");

Passaggio 7: aggiunta di scene allo stage

Puoi aggiungere un oggetto Scene allo stage utilizzando il metodo setScene()della classe denominata Stage. Aggiungi l'oggetto Scene preparato in precedenzasteps utilizzando questo metodo come segue.

primaryStage.setScene(scene);

Passaggio 8: visualizzazione dei contenuti dello stage

Visualizza il contenuto della scena utilizzando il metodo denominato show() del Stage classe come segue.

primaryStage.show();

Passaggio 9: avvio dell'applicazione

Avvia l'applicazione JavaFX chiamando il metodo statico launch() del Application class dal metodo principale come segue.

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

Esempio

Di seguito è riportato un programma che genera una curva quadrilatera utilizzando JavaFX. Salva questo codice in un file con il nomeQuadCurveExample.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); 
   } 
}

Compilare ed eseguire il file java salvato dal prompt dei comandi utilizzando i seguenti comandi.

javac QuadCurveExample.java 
java QuadCurveExample

All'esecuzione, il programma precedente genera una finestra JavaFX che mostra una curva quadrilatera di Bezier come mostrato nella seguente schermata.